首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(上)

懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(上)

作者头像
Excel催化剂
发布于 2021-08-20 07:26:58
发布于 2021-08-20 07:26:58
1.8K0
举报
文章被收录于专栏:Excel催化剂Excel催化剂

前言

经常听别人说 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科成绩都超出全级平均分的学生" ,每科成绩都要细致对比

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel催化剂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(下)
经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 。
Excel催化剂
2021/08/20
5950
懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(下)
零基础5天入门Python数据分析:第五课
在第一第二课已经讲了notebook的基础使用,python的基础语法及常用的数据结构及其运算,包括:
明月AI
2021/10/28
1.9K0
零基础5天入门Python数据分析:第五课
懂Excel就能轻松入门Python数据分析包pandas(七):分列
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/20
3.1K0
懂Excel就能轻松入门Python数据分析包pandas(七):分列
懂Excel轻松入门Python数据分析包pandas(十八):pandas 中的 vlookup
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
3.4K0
懂Excel轻松入门Python数据分析包pandas(十八):pandas 中的 vlookup
懂Excel轻松入门Python数据分析包pandas(二十二):排名
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
5820
懂Excel轻松入门Python数据分析包pandas(二十二):排名
懂Excel就能轻松入门Python数据分析包pandas(六):排序
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/20
9150
懂Excel就能轻松入门Python数据分析包pandas(六):排序
"Python替代Excel Vba"系列(二):pandas分组统计与操作Excel
在本系列的上一节已经介绍了如何读写 excel 数据,并快速进行汇总处理。但有些小伙伴看完之后有些疑惑:
咋咋
2021/09/01
2.1K0
"Python替代Excel Vba"系列(二):pandas分组统计与操作Excel
懂Excel就能轻松入门Python数据分析包pandas(九):复杂分列
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
8890
懂Excel就能轻松入门Python数据分析包pandas(九):复杂分列
懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
1.1K0
懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组
懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
咋咋
2021/09/01
8940
懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组
懂Excel轻松入门Python数据分析包pandas(二十四):连续区域
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
1.3K0
懂Excel轻松入门Python数据分析包pandas(二十四):连续区域
懂Excel轻松入门Python数据分析包pandas(二十四):连续区域
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
咋咋
2021/09/01
1.5K0
懂Excel轻松入门Python数据分析包pandas(二十四):连续区域
懂Excel轻松入门Python数据分析包pandas(十九):文本条件统计
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
1.6K0
懂Excel轻松入门Python数据分析包pandas(十九):文本条件统计
懂Excel就能轻松入门Python数据分析包pandas(十一):分段匹配
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/20
8980
懂Excel就能轻松入门Python数据分析包pandas(十一):分段匹配
懂Excel轻松入门Python数据分析包pandas(十九):文本条件统计
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
咋咋
2021/09/01
1.4K0
懂Excel轻松入门Python数据分析包pandas(十九):文本条件统计
智能分析:ChatGPT+Excel+Python超强组合玩转数据分析
首先是顶流Python高举卷王之王的大旗向传统王者VBA抢班夺权,pandas, xlwings、OpenPyXL和Matplotlib等第三方包已经具备VBA和Power Query的几乎所有功能。
博文视点Broadview
2023/12/21
1.6K0
智能分析:ChatGPT+Excel+Python超强组合玩转数据分析
懂Excel轻松入门Python数据分析包pandas(二十):数值条件统计
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
9290
懂Excel轻松入门Python数据分析包pandas(二十):数值条件统计
懂Excel轻松入门Python数据分析包pandas(二十七):按条件选择,就是这么简单
Excel 函数中有一个初学者都能马上学会的函数——IF 函数,而在 pandas 中却没有对应效果的方法,这是因为 numpy 已经有了对应的实现—— where。
咋咋
2021/09/01
9500
懂Excel轻松入门Python数据分析包pandas(二十七):按条件选择,就是这么简单
懂Excel就能轻松入门Python数据分析包pandas(八):匹配查找
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/19
1.6K0
懂Excel就能轻松入门Python数据分析包pandas(八):匹配查找
懂Excel就能轻松入门Python数据分析包pandas(五):重复值处理
> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
Excel催化剂
2021/08/20
1.7K0
懂Excel就能轻松入门Python数据分析包pandas(五):重复值处理
推荐阅读
懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(下)
5950
零基础5天入门Python数据分析:第五课
1.9K0
懂Excel就能轻松入门Python数据分析包pandas(七):分列
3.1K0
懂Excel轻松入门Python数据分析包pandas(十八):pandas 中的 vlookup
3.4K0
懂Excel轻松入门Python数据分析包pandas(二十二):排名
5820
懂Excel就能轻松入门Python数据分析包pandas(六):排序
9150
"Python替代Excel Vba"系列(二):pandas分组统计与操作Excel
2.1K0
懂Excel就能轻松入门Python数据分析包pandas(九):复杂分列
8890
懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组
1.1K0
懂Excel轻松入门Python数据分析包pandas(二十五):循环序列分组
8940
懂Excel轻松入门Python数据分析包pandas(二十四):连续区域
1.3K0
懂Excel轻松入门Python数据分析包pandas(二十四):连续区域
1.5K0
懂Excel轻松入门Python数据分析包pandas(十九):文本条件统计
1.6K0
懂Excel就能轻松入门Python数据分析包pandas(十一):分段匹配
8980
懂Excel轻松入门Python数据分析包pandas(十九):文本条件统计
1.4K0
智能分析:ChatGPT+Excel+Python超强组合玩转数据分析
1.6K0
懂Excel轻松入门Python数据分析包pandas(二十):数值条件统计
9290
懂Excel轻松入门Python数据分析包pandas(二十七):按条件选择,就是这么简单
9500
懂Excel就能轻松入门Python数据分析包pandas(八):匹配查找
1.6K0
懂Excel就能轻松入门Python数据分析包pandas(五):重复值处理
1.7K0
相关推荐
懂Excel也能轻松入门Python数据分析包pandas(二):高级筛选(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档