14种方式,34个案例:对比SQL,学习Pandas操作
在SQL中查询数据的时候我们所有各种操作,主要是通过select、where、group by等多个关键词的组合查询来实现的。本文中介绍的如何在相同的需求下,通过pandas来实现取数操作。
比较方向
查询全部数据
前N条
后N条
中间段数据
部分字段
指定等式条件
指定不等式条件
取反操作
指定多个条件
指定计算等式
模糊查询
排序
分组统计
取别名
参考资料
因为本文主要介绍的是如何通过pandas来获取我们想要的数据,也是pandas的各种取数技巧,参考之前介绍的3篇文章:
各种骚气的Pandas取数操作
赞!五花八门的Pandas筛选数据
最后一篇:玩转Pandas取数
模拟数据
在数据库中,我们先模拟了3份数据:
1、学生信息表
-- 学生信息mysql> select * from Student;
+------+--------+------------+-------+
| s_id | s_name | s_birth | s_sex |
+------+--------+------------+-------+
| 01 | 赵雷 | 1990-01-01 | 男 |
| 02 | 钱电 | 1990-12-21 | 男 |
| 03 | 孙风 | 1990-05-20 | 男 |
| 04 | 李云 | 1990-08-06 | 男 |
| 05 | 周梅 | 1991-12-01 | 女 |
| 06 | 吴兰 | 1992-03-01 | 女 |
| 07 | 郑竹 | 1989-07-02 | 女 |
| 08 | 王菊 | 1990-01-20 | 女 |
+------+--------+------------+-------+
8 rows in set (0.00 sec)
2、一份用户表
3、一份水果商品价格表
下面开始介绍不同需求下基于pandas和SQL的取数实现
取出全部数据
SQL实现
select * from Student;
Pandas实现
前N条数据
SQL实现
查看前5条数据:
Pandas实现
head方法默认是前5条:
指定查看前7条数据:
后N条数据
select *
from (select * from Student order by s_id desc limit 5)t -- 临时结果表:倒序输出的最后5条
order by s_id; -- 再使用一次排序,将顺序还原
Pandas实现
tail方法默认是后5条:
指定查看4条
切片数据
SQL实现
Pandas实现
使用pandas中的切片来查看某个连续区间内的数据:
取出部分字段
SQL实现
Pandas实现
df1[["id","name","sex"]] # 方式1df2.filter(items=["id","age","createtime"]) # 方式2
指定等式条件
SQL实现
Pandas实现
df1[df1["sex"] == "男"] # 方式1
df1.query('sex=="男"') # 方式2
指定id号或者年龄age:
指定不等式条件
SQL实现
select * from Student where s_sex!= "男";
select * from user where age > 18;
select * from user where id <= 3;
Pandas实现
取反操作
SQL实现
mysql> select * from Student where s_sex != "男";
Pandas实现
指定多个条件
SQL实现
select * from Student where s_birth <="1991-01-01" and s_sex= "男";
select * from user where age < 20 and fee > 60;
select * from user where age < 20 and fee > 60;
Pandas实现
指定计算等式
SQL实现
select * from user where age % 3 = 0; -- 年龄分别是3或者2的倍数
select * from user where age % 2 = 0;
Pandas实现
模糊查询
SQL实现
SQL的关键词是like:
左匹配
右匹配
全匹配
Pandas实现
排序
默认是升序,可以指定为降序
SQL实现
1、单个字段
select * from Student order by s_birth desc; -- 改成升序
2、多个字段的排序
Pandas实现
1、单个字段
2、多个字段
分组统计
SQL实现
通过group by 来进行分组统计:
Pandas实现
先看看df3的数据,一个水果会对应多个价格,我们水果的名称对价格汇总:
df3.groupby("name").agg({"price":"sum"}).reset_index() # 方式1df3.groupby("name")["price"].sum().reset_index() # 方式2
取别名
SQL实现
通过使用as 关键词:
select name as 水果, sum(price) as 价格 from products group by name;
Pandas实现
Pandas是通过rename函数来实现的:
df3.groupby("name").agg({"price":"sum"}).reset_index().rename(columns={"name":"水果","price":"价格"})
推荐阅读:入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片
点阅读原文,领AI全套资料!
14种方式,34个案例:对比SQL,学习Pandas操作相关推荐
- 【Python】14种方式,34个案例:对比SQL,学习Pandas操作
公众号:尤而小屋 作者:Peter 编辑:Peter 本文主题:对比SQL,学习Pandas操作! 在SQL中查询数据的时候我们所有各种操作,主要是通过select.where.group by等多个 ...
- 对比SQL,学习Pandas操作:group_concat如何实现?
本文主要讲解的是如何利用pandas来实现SQL中的group_concat操作. group_concat SQL或者MySQL中的group_concat到底实现的什么功能呢?看例子来说明. 下面 ...
- android屏幕适配的五种方式,价值2000元的学习资源泄露,附答案
开头 作为一个40的人,能有面试机会是格外的珍惜,也分外的诚恳.没什么豪言壮语,雄心大志.没有狼性,社会把中年人打磨成了听话的舔狗. 感谢马爸爸旗下公司,给了我为数不多机会中一个,而且还是个相当好的位 ...
- 对比SQL学习power bi--(2)表关联顺序!
数据说明: 有以下表: 库龄表 出入库表 日期表 背景--数据处理逻辑:日期表的数据提取来自库龄表,但是库龄表的日期每周更新一次,比如一周的日期是2022/2/1~2022/2/7日,而库龄表就只会有 ...
- Solr 16 - Solr中添加、更新、删除数据的几种方式 (在URL上或Web页面中操作)
目录 1 添加/更新索引数据 1.1 JSON格式的操作 1.2 XML格式的操作 2 删除索引数据 2.1 删除符合特定条件的数据 2.2 删除指定ID的数据 2.3 删除全部索引数据 3 在doc ...
- 14种方法助你参与开源项目
导读:每日[快讯精选]是由CSDN研发频道推出的特色栏目,每一天我们将从国外技术媒体(例如Hacker News.Reddit...等等)中挑选出有价值的新闻简讯,让您在第一时间掌握业界主流的技术文摘 ...
- Java操作Excel三种方式POI、Hutool、EasyExcel
Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...
- Spring注入Bean的七种方式
点击关注公众号,利用碎片时间学习 通过注解注入Bean 背景 我们谈到Spring的时候一定会提到IOC容器.DI依赖注入,Spring通过将一个个类标注为Bean的方法注入到IOC容器中,达到了控制 ...
- Spring 注入 Bean 的七种方式
来源:juejin.cn/post/6844903813753602056 通过注解注入Bean 背景 我们谈到Spring的时候一定会提到IOC容器.DI依赖注入,Spring通过将一个个类标注为B ...
最新文章
- 安装tensorflow_gpu,无法定位程序输入点
- JSP userBean setProperty getProperty指令使用
- Linux学习笔记 1 环境变量 2 vi命令
- ubuntu c++检测usb口事件变化_拆解报告:美式双USBA口充电插座
- JavaScript.Remove
- 【对抗攻击代码实战】对抗样本的生成——FGSM
- Rplidar A2M8屏蔽角度
- 小程序 字号设置 slider滚动改变大小_Snipaste(滚动截图软件)app下载|Snipaste(滚动截图软件) 1.15.2 绿色版(32/64位)...
- PPT全屏错误 显示不全
- 戴尔笔记本电脑耳机插入声音外放问题
- 理解和应用向量积与数量积
- Hadoop上路-03_Hadoop JavaAPI
- SAP中交货计划导出需求处理实例
- 迅雷 华为 手机 php,荣耀路由Pro怎么用手机远程下载迅雷任务
- 机器学习之数据集划分-k折交叉验证法(k-fold cross validation)
- 【密码学】费马小定理素性检测(C++代码实现)
- [小黄书后台]文件上传到服务器
- 算法学习之膨胀腐蚀算法
- zabbix批量自动监控新华三服务器
- [ERP]IPQC是什么意思?IPQC工作职责和IPQC工作流程
热门文章
- 基于Android的备忘录软件,基于Android的手机备忘录软件设计
- MySQL sql语句获取当前日期|时间|时间戳
- ue4渲染速度太慢_[UE4]性能优化指南(程序向)
- 谈谈红楼梦(第6-10回)
- 100个一些乱七八糟的网站
- SQL Server备份、完整备份,差异备份、日志备份
- Abaqus 6.13运行出错 :1073740791
- 人工智能相关思维导图
- 【阶段总结】《非结构化信息分析应用与实践(筹)》
- [Gdiplus]_[中级]_[绘图实现单行文本的多种颜色]