Python数据处理,工具用错了,还不如Excel的高级筛选功能

Python数据处理,工具用错了,还不如Excel的高级筛选功能


Python数据处理,工具用错了,还不如Excel的高级筛选功能

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

系列文章:

  1. 懂Excel也能轻松入门Python数据分析包pandas(一):筛选功能

前言

经常听别人说 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 的实现:

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

Python数据处理,工具用错了,还不如Excel的高级筛选功能

特定值过滤

"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 这些都可以
Python数据处理,工具用错了,还不如Excel的高级筛选功能


下篇预告

本文从 Excel 高级筛选角度介绍简单的应用,下一篇将讲解更复杂的应用,先看看有哪些复杂需求:

  • "总分高于全班平均分的学生",这需要每行记录与整体平均对比
  • "总分高于所在班级平均分的学校" ,这是上一条的升级版
  • "全级中,8科成绩都超出全级平均分的学生" ,每科成绩都要细致对比

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

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

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

11111
声明:该文观点仅代表作者本人,6399头条信息发布平台,仅提供信息存储空间服务。

热门推荐

做可乐鸡翅时,千万不要直接炖,做好这两步,越吃越过瘾

0 浏览 13 2019-10-03 19:24:05

红焖羊肉当年火爆京城,现在淡出江湖后,正宗的做法却没留下来

0 浏览 9 2019-10-03 19:24:15

香辣酱、特制红油绝密配方(精确到克) 有了这两款配料做啥都好吃

0 浏览 21 2019-10-03 19:24:24

虎皮辣椒最简单的做法 香辣可口超下饭又好学 几分钟就能做一盘

0 浏览 14 2019-10-03 19:24:32

国庆节家人团聚,端上一盘自己酱的牛肉,大人孩子都爱吃

0 浏览 17 2019-10-03 19:24:39

无论何种人生,我们最该补上的一课是:孤独

0 浏览 9 2019-10-03 19:24:46

九菊花自香

0 浏览 5 2019-10-03 19:24:53

秋风起,捡板栗

0 浏览 6 2019-10-03 19:25:15

一家人,整整齐齐,和和睦睦,有说有笑,有谦有让

0 浏览 7 2019-10-03 19:25:24

关于女人、母亲的记言一则

0 浏览 18 2019-10-03 19:25:31

假期出游计划!在郴州汝城九龙江绝美风景里,感受山居野趣

0 浏览 10 2019-10-03 19:33:51

湖北恩施大峡谷景区内突发落石事件 致3人死亡1人轻伤 七星寨景区暂停营业

0 浏览 16 2019-10-03 19:34:00

国庆假期第二天:这十个“最”,最独特!

0 浏览 15 2019-10-03 19:34:11

给独自旅行的小伙伴一点建议

0 浏览 6 2019-10-03 19:34:17

门票降价,游客减少,张家界一年不如一年

0 浏览 12 2019-10-03 19:34:25

VLOG|花海、美人、熊猫、锦鲤……记者带你打卡泰山花海

0 浏览 27 2019-10-03 19:34:31

论穿衣打扮只服张钧甯,每款穿搭都这么好看,学到你就赚到了

0 浏览 19 2019-10-03 19:34:40

39岁张娜拉久违出镜,一袭白色婚纱挡不住少女感,尽显迷人魅力

0 浏览 16 2019-10-03 19:34:46

辛芷蕾jennie俩人撞脸如亲姐妹,气质优雅身材赞,小松菜奈略黯淡

0 浏览 15 2019-10-03 19:34:54