pandas 多条件筛选DataFrame
可直接去看 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
要注意的是,&
优先级比<
、>
、==
高级,所以要记得加括号;还有就是and
、or
、not
好像是被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[]
中进行筛选了。
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相关推荐
- 【Pandas学习】多条件筛选DataFrame
目录 一.按列筛选 1.简单筛选 2.多条件筛选 二.按行筛选 三.多条件组合 一.按列筛选 1.简单筛选 DataFrame\Series 执行>.<.==这些运算符时,会将每一个元素进 ...
- Pandas多条件筛选
多条件筛选 gg = g[(g["x偏移"]<1) & (g["x偏移"]>-1)] [pandas中应用正则表达式的应用]
- python pandas多条件筛选
我们在使用pandas操作表格时,通常会使用到筛选功能,但我在网上查找了很多资料,pandas貌似没有相应的方法,因此我自己写了一个方法,代码为: import pandas as pddef df_ ...
- Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选
Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选 目录 利用isin函数对dataframe格式数据按照多个字段的条件筛选 代码设计 输出结果
- Pandas常见的数据过滤方法、通过列条件筛选行数据
Pandas常见的数据过滤方法.通过列条件筛选行数据 不废话了,直接看代码吧: 一般情况下,前面5种就覆盖了绝大多数需求 import pandas as pd import numpy as npd ...
- Pandas条件筛选 | Python技能树征题
相关知识 筛选是数据处理中非常频繁使用的功能,而Pandas对表格型数据(Pandas.DataFrame)已经封装了非常完善的条件筛选功能,他们支持下面五种比较运算符和两种逻辑运算符. 运算符 含义 ...
- pandas筛选数据_2_条件筛选
1. 多条件筛选 import pandas as pd data=[['mark',55,'Italy',4.5,'Europe'],['John',33,'China',3.8,'Asian'], ...
- Pandas使用技巧-apply,条件筛选
使用Pandas的技巧就是熟悉Pandas的函数库,在数据处理过程中尽量使用Pandas方法. Pandas支持类似SQL的语句,适合对二维表格数据进行处理. apply()批量数据处理 import ...
- Pandas处理excel数据笔记(数据透视|多条件筛选)
遇到复杂条件下海量的数据透视任务,excel难以驾驭.如对不同部门在不同年份吸收了什么学历的员工,pandas的筛选发挥了神奇的作用. 一.导包 pip install pandas pip inst ...
最新文章
- 流 java_java8——使用流
- 记录JS event Loop机制及Node v8事件执行机制
- 面试官:Mysql 中主库跑太快,从库追不上怎么整?
- andriod开发环境配置
- Codeforces 173E Camping Groups 线段树
- 我的Android进阶之旅------Android利用温度传感器实现带动画效果的电子温度计
- python 缺省参数_week04_python函数缺省值
- 【官宣】亚马逊云科技Build On 2022年技能提升计划正式启航
- EdrawMax v12.0.2跨平台图表软件
- windows nginx出现 was not signaled for 5s
- Less -- 初见less(Less介绍 初次使用less 使用考拉编译less 盒子居中)
- 共射级放大电路—密勒电容影响下的压摆率
- MyBatis(九):MyBatis类型处理器(TypeHandler)详解
- android集成科大讯飞语音听写和语音合成
- xml 转 excel 和xml 转excel 的 思路描述
- C#窗体应用程序之复选框(ComboBox)与进度条(ProgressBar)应用——倒计时器
- rv是什么电子元件 RV线的具体作用都有哪些
- xbox控制台小帮手可以卸载吗?
- 基于esp32的ic卡考勤系统
- 人工智能机器人的双师课堂教学方式
热门文章
- Camera2 Android相机Demo
- win10电脑已有声道驱动但插入耳机还是没反应怎么办?
- Latex写作会议论文中多位作者、机构的排版
- 机器学习-单一模型/Ensemble模型-误差率解析
- 【分享】如何用Pytho抓取微信公众号文章(包括阅读数,点赞数)
- android浏览器获取设备id,html 或者HTML5 加上js能获取手机设备的id号吗
- Flutter开发之——动画-Rive
- 在电脑上录制课程音频用什么录音软件好用?
- creo分割实体_Proe/Creo曲面分割·这个新功能你会用了吗?
- proe产品设计曲面如何合并,建议收藏