【Pandas学习】多条件筛选DataFrame

这篇具有很好参考价值的文章主要介绍了【Pandas学习】多条件筛选DataFrame。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、按列筛选

1、简单筛选

2、多条件筛选 

二、按行筛选

三、多条件组合

一、按列筛选

1、简单筛选

DataFrame\Series 执行><==这些运算符时,会将每一个元素进行比较,得到一个由结果(Boolean值)组成的相同大小的DataFrame\Series返回。

df = pd.DataFrame({"A":[1,1,1,2,3],"B":[3,3,5,3,8],"C":[1,5,5,2,7],"D":[1,2,3,6,7]})
df
   A  B  C  D
0  1  3  1  1
1  1  3  5  2
2  1  5  5  3
3  2  3  2  6
4  3  8  7  7
df > 4
       A      B      C      D
0  False  False  False  False
1  False  False   True  False
2  False   True   True  False
3  False  False  False   True
4  False   True   True   True
df["C"] > 4
0    False
1     True
2     True
3    False
4     True
Name: C, dtype: bool

2、多条件筛选 

相同大小的DataFrame\Series之间可以用&|~运算符进行运算,得到由结果组成的相同大小的DataFrame\Series

(df["C"] > 4) & (df["D"] < 4)
0    False
1     True
2     True
3    False
4    False
dtype: bool

要注意的是,&优先级比<>==高级,所以要记得加括号;还有就是andornot好像是被DataFrame/Series用于其他的运算了,因此不能用以代替&|~
df[]传入一个由boolean值组成Series的话,就可以筛选出True相应位置的行。

df[(df["C"] > 4) & (df["D"] < 4)]
   A  B  C  D
1  1  3  5  2
2  1  5  5  3

二、按行筛选

loc可以同时筛选行和列

df.loc[(df["C"] > 4) & (df["D"] < 4), (df.loc[0] == 1) & (df.loc[3] == 2)]
   A  C
1  1  5
2  1  5

DataFrame和list/dict/Serise比较时,会用每一行元素和list/dict/Series对应的元素进行比较

df[["A", "B"]] == [1, 3]
df[["A", "B"]] == {"B": 3, "A": 1}
df[["A", "B"]] == pd.Series({"A": 1, "B": 3})
       A      B
0   True   True
1   True   True
2   True  False
3  False   True
4  False  False

需要注意的是list和Series里面元素的顺序。
这时对得到的DataFrame使用all()方法,将每列的boolean值进行&运算,得到一个包含结果的Series。

(df[["A", "B"]] == pd.Series({"A": 1, "B": 3})).all(1)
0     True
1     True
2    False
3    False
4    False
dtype: bool

需要注意all()中的要加参数1,表示计算每一行的值,默认0的是计算每一列的值。
这样就可以将Series传入df[]中进行筛选了。文章来源地址https://www.toymoban.com/news/detail-579409.html

df[(df[["A", "B"]] == pd.Series({"A": 1, "B": 3})).all(1)]
   A  B  C  D
0  1  3  1  1
1  1  3  5  2

三、多条件组合

##df[(条件1)&(条件2)&(条件3)&...](只能筛选行)
df[(df["C"] > 4) & (df["D"] < 4)]
##df.loc[(列条件1)&(列条件2)&(列条件3)&..., (行条件1)&(行条件2)&(行条件3)&...]
df.loc[(df["C"] > 4) & (df["D"] < 4), (df.loc[0] == 1) & (df.loc[3] == 2)]
##必须用&、|、~来表示且、或、否,不能用and、or、not
##条件中如果带有比&、|、~低级的运算符,要记得给条件加括号
##loc只筛选行的话用:代替列条件部分

##条件是一个list/dict/Series的时候
##df[(df[[列1,列2]] == list/dict).all(1)]
df[(df[["A", "B"]] == [1, 3]).all(1)]
df[(df[["A", "B"]] == {"A": 1, "B": 3}).all(1)]
df[(df[["A", "B"]] == pd.Series({"A": 1, "B": 3})).all(1)]
##这种方法不适用于筛选列, 可以先将DataFrame转置

到了这里,关于【Pandas学习】多条件筛选DataFrame的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】数据分析+数据挖掘——探索Pandas中的数据筛选

    当涉及数据处理和分析时,Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法,使得数据的选择、筛选和处理变得简单而高效。在本博客中,我们将重点介绍Pandas中数据筛选的关键知识点,包括条件索引、逻辑操作符、 query() 方法以及

    2024年02月15日
    浏览(58)
  • Python学习笔记_实战篇(二)_django多条件筛选搜索

    多条件搜索在很多网站上都有用到,比如京东,淘宝,51cto,等等好多购物教育网站上都有,当然网上也有很多开源的比楼主写的好的多了去了,仅供参考,哈哈 先来一张效果图吧,不然幻想不出来是什么样的,前端样式很low,毕竟主要是说后台的嘛,前端为了简单测试就简

    2024年02月12日
    浏览(46)
  • Python实用技巧:Pandas--DataFrame--筛选和删除含特定值的行与列

    Python实用技巧:Pandas–DataFrame–筛选和删除含特定值的行与列 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~ 💡 创作高质量博文,分享更多关于深度学习、PyT

    2024年04月13日
    浏览(44)
  • (九)Pandas表格样式 学习简要笔记 #Python #CDA学习打卡

    目录 一. Pandas表格样式 1)举例数据 2)字体颜色 3)背景高亮 4)极值背景高亮 (a)高亮最大值 highlight_max() (b)高亮最小值 highlight_min() (c)同时高亮最大值与最小值 5)横向对比 (a)标记出每个学生的单科最高分数 axis (b)选定一列的最大值高亮 subset 6)背景渐变 

    2024年04月26日
    浏览(34)
  • python数据分析学习笔记之matplotlib、numpy、pandas

    为了学习机器学习,在此先学习以下数据分析的matplotlib,numpy,pandas,主要是为自己的学习做个记录,如有不会的可以随时查阅。希望大家可以一起学习共同进步,我们最终都可以说:功不唐捐,玉汝于成。就算遇到困难也不要气馁,大声说:我不怕,我敏而好学!! 把大量

    2024年02月08日
    浏览(59)
  • pandas--DataFrame--数据切片/筛选/取值

    2024年02月13日
    浏览(55)
  • Pandas 筛选数据的 8 个神操作

    日常用 Python 做数据分析最常用到的就是查询筛选了,按各种条件、各种维度以及组合挑出我们想要的数据,以方便我们分析挖掘。 今天我给大家总结了日常查询和筛选常用的种骚操作,供各位学习参考。本文采用 sklearn 的 boston 数据举例介绍。 喜欢本文记得收藏、关注、点

    2024年02月02日
    浏览(39)
  • pandas 筛选数据的 8 个骚操作

    日常用 Python 做数据分析最常用到的就是查询筛选了,按各种条件、各种维度以及组合挑出我们想要的数据,以方便我们分析挖掘。 东哥总结了日常查询和筛选常用的种骚操作,供各位学习参考。本文采用 sklearn 的 boston 数据举例介绍。 第一种是最快捷方便的,直接在datafr

    2024年02月09日
    浏览(38)
  • Pandas.DataFrame.loc[ ] 筛选数据-标签法 详解 含代码 含测试数据集 随Pandas版本持续更新

    关于Pandas版本: 本文基于 pandas2.2.0 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 传送门: Pandas API参考目录 传送门: Pandas 版本更新及新特性 传送门: Pandas 由浅入深系列教程 Pandas.DataFrame.loc[] 方法用于通过 索引、列名 筛选 DataF

    2024年01月19日
    浏览(39)
  • 别再低效筛选数据了!试试pandas query函数

    数据过滤在数据分析过程中具有极其重要的地位,因为在真实世界的数据集中,往往存在重复、缺失或异常的数据。 pandas 提供的数据过滤功能可以帮助我们轻松地识别和处理这些问题数据,从而确保数据的质量和准确性。 今天介绍的 query 函数,为我们提供了强大灵活的数据

    2024年03月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包