在SQL中查询数据的时候我们所有各种操作,主要是通过select、where、group by等多个关键词的组合查询来实现的。本文中介绍的如何在相同的需求下,通过pandas来实现取数操作。

比较方向

  1. 查询全部数据

  2. 前N条

  3. 后N条

  4. 中间段数据

  5. 部分字段

  6. 指定等式条件

  7. 指定不等式条件

  8. 取反操作

  9. 指定多个条件

  10. 指定计算等式

  11. 模糊查询

  12. 排序

  13. 分组统计

  14. 取别名

参考资料

因为本文主要介绍的是如何通过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操作相关推荐

  1. 【Python】14种方式,34个案例:对比SQL,学习Pandas操作

    公众号:尤而小屋 作者:Peter 编辑:Peter 本文主题:对比SQL,学习Pandas操作! 在SQL中查询数据的时候我们所有各种操作,主要是通过select.where.group by等多个 ...

  2. 对比SQL,学习Pandas操作:group_concat如何实现?

    本文主要讲解的是如何利用pandas来实现SQL中的group_concat操作. group_concat SQL或者MySQL中的group_concat到底实现的什么功能呢?看例子来说明. 下面 ...

  3. android屏幕适配的五种方式,价值2000元的学习资源泄露,附答案

    开头 作为一个40的人,能有面试机会是格外的珍惜,也分外的诚恳.没什么豪言壮语,雄心大志.没有狼性,社会把中年人打磨成了听话的舔狗. 感谢马爸爸旗下公司,给了我为数不多机会中一个,而且还是个相当好的位 ...

  4. 对比SQL学习power bi--(2)表关联顺序!

    数据说明: 有以下表: 库龄表 出入库表 日期表 背景--数据处理逻辑:日期表的数据提取来自库龄表,但是库龄表的日期每周更新一次,比如一周的日期是2022/2/1~2022/2/7日,而库龄表就只会有 ...

  5. Solr 16 - Solr中添加、更新、删除数据的几种方式 (在URL上或Web页面中操作)

    目录 1 添加/更新索引数据 1.1 JSON格式的操作 1.2 XML格式的操作 2 删除索引数据 2.1 删除符合特定条件的数据 2.2 删除指定ID的数据 2.3 删除全部索引数据 3 在doc ...

  6. 14种方法助你参与开源项目

    导读:每日[快讯精选]是由CSDN研发频道推出的特色栏目,每一天我们将从国外技术媒体(例如Hacker News.Reddit...等等)中挑选出有价值的新闻简讯,让您在第一时间掌握业界主流的技术文摘 ...

  7. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

  8. Spring注入Bean的七种方式

    点击关注公众号,利用碎片时间学习 通过注解注入Bean 背景 我们谈到Spring的时候一定会提到IOC容器.DI依赖注入,Spring通过将一个个类标注为Bean的方法注入到IOC容器中,达到了控制 ...

  9. Spring 注入 Bean 的七种方式

    来源:juejin.cn/post/6844903813753602056 通过注解注入Bean 背景 我们谈到Spring的时候一定会提到IOC容器.DI依赖注入,Spring通过将一个个类标注为B ...

最新文章

  1. 安装tensorflow_gpu,无法定位程序输入点
  2. JSP userBean setProperty getProperty指令使用
  3. Linux学习笔记 1 环境变量 2 vi命令
  4. ubuntu c++检测usb口事件变化_拆解报告:美式双USBA口充电插座
  5. JavaScript.Remove
  6. 【对抗攻击代码实战】对抗样本的生成——FGSM
  7. Rplidar A2M8屏蔽角度
  8. 小程序 字号设置 slider滚动改变大小_Snipaste(滚动截图软件)app下载|Snipaste(滚动截图软件) 1.15.2 绿色版(32/64位)...
  9. PPT全屏错误 显示不全
  10. 戴尔笔记本电脑耳机插入声音外放问题
  11. 理解和应用向量积与数量积
  12. Hadoop上路-03_Hadoop JavaAPI
  13. SAP中交货计划导出需求处理实例
  14. 迅雷 华为 手机 php,荣耀路由Pro怎么用手机远程下载迅雷任务
  15. 机器学习之数据集划分-k折交叉验证法(k-fold cross validation)
  16. 【密码学】费马小定理素性检测(C++代码实现)
  17. [小黄书后台]文件上传到服务器
  18. 算法学习之膨胀腐蚀算法
  19. zabbix批量自动监控新华三服务器
  20. [ERP]IPQC是什么意思?IPQC工作职责和IPQC工作流程

热门文章

  1. 基于Android的备忘录软件,基于Android的手机备忘录软件设计
  2. MySQL sql语句获取当前日期|时间|时间戳
  3. ue4渲染速度太慢_[UE4]性能优化指南(程序向)
  4. 谈谈红楼梦(第6-10回)
  5. 100个一些乱七八糟的网站
  6. SQL Server备份、完整备份,差异备份、日志备份
  7. Abaqus 6.13运行出错 :1073740791
  8. 人工智能相关思维导图
  9. 【阶段总结】《非结构化信息分析应用与实践(筹)》
  10. [Gdiplus]_[中级]_[绘图实现单行文本的多种颜色]