可直接去看 pandas文档 Indexing and selecting data

##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转置

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]})
dfA  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 > 4A      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

相同大小的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

DataFramelist/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

需要注意的是listSeries里面元素的顺序。
这时对得到的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[]中进行筛选了。

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

这样遍历其他DataFrame取出的条件信息就可以很直接地进行比较了。

pandas 多条件筛选DataFrame相关推荐

  1. 【Pandas学习】多条件筛选DataFrame

    目录 一.按列筛选 1.简单筛选 2.多条件筛选 二.按行筛选 三.多条件组合 一.按列筛选 1.简单筛选 DataFrame\Series 执行>.<.==这些运算符时,会将每一个元素进 ...

  2. Pandas多条件筛选

    多条件筛选 gg = g[(g["x偏移"]<1) & (g["x偏移"]>-1)] [pandas中应用正则表达式的应用]

  3. python pandas多条件筛选

    我们在使用pandas操作表格时,通常会使用到筛选功能,但我在网上查找了很多资料,pandas貌似没有相应的方法,因此我自己写了一个方法,代码为: import pandas as pddef df_ ...

  4. Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选

    Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选 目录 利用isin函数对dataframe格式数据按照多个字段的条件筛选 代码设计 输出结果

  5. Pandas常见的数据过滤方法、通过列条件筛选行数据

    Pandas常见的数据过滤方法.通过列条件筛选行数据 不废话了,直接看代码吧: 一般情况下,前面5种就覆盖了绝大多数需求 import pandas as pd import numpy as npd ...

  6. Pandas条件筛选 | Python技能树征题

    相关知识 筛选是数据处理中非常频繁使用的功能,而Pandas对表格型数据(Pandas.DataFrame)已经封装了非常完善的条件筛选功能,他们支持下面五种比较运算符和两种逻辑运算符. 运算符 含义 ...

  7. pandas筛选数据_2_条件筛选

    1. 多条件筛选 import pandas as pd data=[['mark',55,'Italy',4.5,'Europe'],['John',33,'China',3.8,'Asian'], ...

  8. Pandas使用技巧-apply,条件筛选

    使用Pandas的技巧就是熟悉Pandas的函数库,在数据处理过程中尽量使用Pandas方法. Pandas支持类似SQL的语句,适合对二维表格数据进行处理. apply()批量数据处理 import ...

  9. Pandas处理excel数据笔记(数据透视|多条件筛选)

    遇到复杂条件下海量的数据透视任务,excel难以驾驭.如对不同部门在不同年份吸收了什么学历的员工,pandas的筛选发挥了神奇的作用. 一.导包 pip install pandas pip inst ...

最新文章

  1. 流 java_java8——使用流
  2. 记录JS event Loop机制及Node v8事件执行机制
  3. 面试官:Mysql 中主库跑太快,从库追不上怎么整?
  4. andriod开发环境配置
  5. Codeforces 173E Camping Groups 线段树
  6. 我的Android进阶之旅------Android利用温度传感器实现带动画效果的电子温度计
  7. python 缺省参数_week04_python函数缺省值
  8. 【官宣】亚马逊云科技Build On 2022年技能提升计划正式启航
  9. EdrawMax v12.0.2跨平台图表软件
  10. windows nginx出现 was not signaled for 5s
  11. Less -- 初见less(Less介绍 初次使用less 使用考拉编译less 盒子居中)
  12. 共射级放大电路—密勒电容影响下的压摆率
  13. MyBatis(九):MyBatis类型处理器(TypeHandler)详解
  14. android集成科大讯飞语音听写和语音合成
  15. xml 转 excel  和xml 转excel 的 思路描述
  16. C#窗体应用程序之复选框(ComboBox)与进度条(ProgressBar)应用——倒计时器
  17. rv是什么电子元件 RV线的具体作用都有哪些
  18. xbox控制台小帮手可以卸载吗?
  19. 基于esp32的ic卡考勤系统
  20. 人工智能机器人的双师课堂教学方式

热门文章

  1. Camera2 Android相机Demo
  2. win10电脑已有声道驱动但插入耳机还是没反应怎么办?
  3. Latex写作会议论文中多位作者、机构的排版
  4. 机器学习-单一模型/Ensemble模型-误差率解析
  5. 【分享】如何用Pytho抓取微信公众号文章(包括阅读数,点赞数)
  6. android浏览器获取设备id,html 或者HTML5 加上js能获取手机设备的id号吗
  7. Flutter开发之——动画-Rive
  8. 在电脑上录制课程音频用什么录音软件好用?
  9. creo分割实体_Proe/Creo曲面分割·这个新功能你会用了吗?
  10. proe产品设计曲面如何合并,建议收藏