转发本文并私信我"python",即可获得Python资料以及各种心得(持续更新的)

系列文章:

前言

经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 。

上一篇文章从 Excel 筛选为核心,介绍 pandas 中的实现,但是,Excel 中还有一个高级筛选的功能,普通的筛选与其对比,就只能算是"低级筛选"功能了。接下来,通过简单到复杂的需求,看看这是怎么样的一个功能。

数据

本文示例数据如下:

某学校的一份考试成绩表(8科成绩)

人名已做脱敏处理

加载数据

pandas 需要加载 Excel 数据,非常容易,如下:

大部分参数上一篇文章已经有说明,这里说说重点

由于工作表中有多余的列数据,我们只需要前10列,因此指定 usecols 参数。他接受一个列表。list(range(0,10)),其实相当于[0,1,2…………,9]的一个列表

条件过滤

先来一个超级简单例子,来看看怎么操作 Excel 的高级筛选。

"姓名是 A1 的记录",Excel 高级筛选操作步骤如下:

功能区 "数据" 页,在"筛选大图标" 右下有一个 "高级" ,点击出来高级筛选功能窗口

主要看上图2的红框,选择我们的数据源区域,记得要包含标题

上图2的蓝框是条件区域,条件区域的选择如图

点击确定,即可筛选出姓名 A1 的记录

看看条件区域的设定:

格式为,标题+条件值(上下单元格)

标题必须与数据源对应的列一致,比如这里指定姓名列,所以条件区域的标题也是"姓名"

条件值我们使用 ="=A1"如果只是指定文本值 A1 ,Excel 默认会把姓名前缀A1的记录筛选出来。

pandas 中没有啥高级筛选的说法,因为他的筛选本来就很灵活,看看 pandas 的实现:

简单易懂,都是之前文章介绍过的,这里不多说

特定值过滤

"4、5或7班的记录",Excel 高级筛选的条件区域设置如下:

红框部分就是条件区域

标题是"班级",这要与数据源保持一致

条件值区域多行表示"或"关系,上图就是表示班级是4或5或7,任意一个符合的记录

pandas 实现如下:

同样使用 query 方法

in [4,5,6] ,语义清晰,班级是在列表中即符合

pandas 的 query 查询可以很灵活,可以接受外部的一个列表变量,如下:

查询字符串要使用外部变量,只需要写 "@+变量名字" 即可

范围过滤

"总分450至500之间的记录",Excel 高级筛选的条件区域设置如下:

数据源没有总分列,添加一个 sum 公式的总分列

条件区域在同一行,表示"并且"关系

条件值可以直接使用常用的比较符号

还是要注意条件标题"总分"

pandas 实现如下:

第一句,添加新列,总和列。pandas 新增列非常简单,df[新列名字]=新列值,即可

df.loc[:,'语文':'生物'] ,是获取语文到生物之间的列的数据

.sum(axis=1) ,横向求和。因为 pandas 可以灵活对行或列做运算,通过 axis 即可表达运算是对行还是列操作。

第二句即查询,通俗易懂

"语文高于90,或者,数学高于或等于100",Excel 高级筛选的条件区域设置如下:

pandas 实现如下:

query 中的查询字符串可以使用 python 中的逻辑关键字 and 或 or 这些都可以

下篇预告

本文从 Excel 高级筛选角度介绍简单的应用,下一篇将讲解更复杂的应用,先看看有哪些复杂需求:"总分高于全班平均分的学生",这需要每行记录与整体平均对比

"总分高于所在班级平均分的学校" ,这是上一条的升级版

"全级中,8科成绩都超出全级平均分的学生" ,每科成绩都要细致对比

下篇将解决以上问题,敬请关注。

转发本文并私信我"python",获取本案例的 Excel 数据与源码

如果希望从零开始学习 pandas ,那么可以看看我的 pandas 专栏。

python怎么筛选excel数据_懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(上)-excel筛选...相关推荐

  1. pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

  2. 可自定义匹配规则查找控件_懂Excel轻松入门Python数据分析包pandas(二十八):二分法查找...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 > E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

  3. pandas 排序 给excel_懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

  4. python爬虫和医学数据_【爬虫】(八)Python之爬虫和数据小解析

    date: 2017-03-14 21:08:42 Holi需要. 之前爬的课表,现在需要将那些个一连串的字符串分割成想要的单独的数据,做个性化推送. 程序的前面和之前一样,模拟登录. 在处理选课/改 ...

  5. python采集抖音数据_抖音数据采集,最全python库selenium自动化使用!

    driver = webdriver.Chrome() driver.maximize_window() 四.访问页面 from selenium import webdriver driver = ...

  6. c++控制台应用每一列数据如何对齐_懂Excel就能轻松入门Python数据分析包pandas(十六):合并数据...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...

  7. python处理excel数据透视表_Python也能轻松做出Excel透视表的效果,一切技巧全在这里...

    此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死.后来才发现,原来不是 Python ...

  8. python的基础_毫无基础的人如何入门 Python ?

    0基础入门Python,其实只需要一周的碎片时间就好啦! Python这种高级编程语言,相比前编程明星C++和Java等更简单易操作.KDnuggets调查显示,目前Python已成为最受AI从业者欢 ...

  9. python入门教程傻瓜版_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!...

    随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 如果你是零基 ...

最新文章

  1. 最新的PHP trait使用方法详解
  2. python+pycharm+Django报错
  3. 没想到你是这样的npm install
  4. python3.8文档_python 3.8的新功能
  5. JdbcTemplate操作
  6. 【WebGoat习题解析】AJAX Security-Insecure Client Storage
  7. [转载] python中字典copy_python深度复制字典,copy方法与deepcopy方法
  8. 利用迅捷PDF分割器实现PDF文档的批量拆分
  9. JavaWeb教程———Ajax
  10. 怎么下载并使用向日葵远程工具
  11. 客户关系管理之会员管理
  12. Python中sys模块
  13. 《快学BigData》--Linux 常用命令
  14. python 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  15. obs多推流地址_OBS如何进行多路推流
  16. iPhone文件管理连接服务器,iOS11文件管理器怎么用?Files文件管理器使用方法与功能介绍...
  17. PCB抄板教程(PS更改底图方法)
  18. CF 221 C Circling Round Treasures - dp - 状压
  19. CAN控制器SJA1000波特率计算方法
  20. 20130719CF比赛141div2

热门文章

  1. 应广单片机 PMS150G、FPC161 基础例子【GPIO设置】
  2. WPF的自动折行面板
  3. Aspupload上传文件出错:Invalid registration key.
  4. 分享148个PHP源码,总有一款适合您
  5. ZOJ 3598 Spherical Triangle(计算几何 球面三角形内角和)
  6. 【问题记录】关于百度网盘客户端打不开
  7. vue渲染.md文件
  8. 利用Django生成PDF文档
  9. 勒索病毒,距离我们还有多远?
  10. 利用chrom 截长图