时间:2021-05-23
pandas按条件筛选数据时,除了使用query()方法,还可以使用isin和对isin取反进行条件筛选.
pandas使用isin时,返回DataFrame中存储的数据为是否满足筛选条件的boolean,可以通过boolean对DataFrame对数据进行筛选。
补充:pandas中isin()函数及其逆函数使用
我使用这个函数就是用来清洗数据,删选过滤掉DataFrame中一些行。
这里你需要知道DateFrame中布尔索引这个东西,可以用满足布尔条件的列值来过滤数据,如下
>>> df=pd.DataFrame(np.random.randn(4,4),columns=['A','B','C','D'])>>> df A B C D0 -0.018330 2.093506 -0.086293 -2.1504791 0.104931 -0.271810 -0.054599 0.3616122 0.590216 0.218049 0.157213 0.6435403 -0.254449 -0.593278 -0.150455 -0.244485>>> df.A>0#布尔索引0 False1 True2 True3 FalseName: A, dtype: bool#布尔索引应用>>> df[df.A>0] A B C D1 0.104931 -0.271810 -0.054599 0.3616122 0.590216 0.218049 0.157213 0.643540>>>添加一列E
>>> df['E']=['a','a','c','b']>>> df A B C D E0 -0.018330 2.093506 -0.086293 -2.150479 a1 0.104931 -0.271810 -0.054599 0.361612 a2 0.590216 0.218049 0.157213 0.643540 c3 -0.254449 -0.593278 -0.150455 -0.244485 b>>> df.E.isin(['a','c'])0 True1 True2 True3 FalseName: E, dtype: bool>>> df.isin(['b','c'])#整个df也同样适用 A B C D E0 False False False False False1 False False False False False2 False False False False True3 False False False False True#应用>>> df[df.E.isin(['a','c'])] A B C D E0 -0.018330 2.093506 -0.086293 -2.150479 a1 0.104931 -0.271810 -0.054599 0.361612 a2 0.590216 0.218049 0.157213 0.643540 c>>>isin()接受一个列表,判断该列中元素是否在列表中。
同时对多个列过滤,可以如下使用
df[df[某列].isin(条件)&df[某列].isin(条件)]#应用>>> df.D=[0,1,0,2]>>> df[df.E.isin(['a','d'])&df.D.isin([0,])] A B C D E0 -0.01833 2.093506 -0.086293 0 a也可以
不推荐,你试一下就知道
df.isin({'某列':[条件],'某列':[条件],})#应用>>> df.D=[0,1,0,2]>>> df A B C D E0 -0.018330 2.093506 -0.086293 0 a1 0.104931 -0.271810 -0.054599 1 a2 0.590216 0.218049 0.157213 0 c3 -0.254449 -0.593278 -0.150455 2 b>>> df[df.isin({'D':[0,3],'E':['a','d']})] A B C D E0 NaN NaN NaN 0.0 a1 NaN NaN NaN NaN a2 NaN NaN NaN 0.0 NaN3 NaN NaN NaN NaN NaN#没错这不适合选出一行>>> df.isin({'D':[0,3],'E':['a','d']}) A B C D E0 False False False True True1 False False False False True2 False False False True False3 False False False False False告诉你没有isnotin,它的反函数就是在前面加上 ~ ,其他用法同上。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在上一篇文章中,我整理了pandas在数据合并和重塑中常用到的concat方法的使用说明。在这里,将接着介绍pandas中也常常用到的join和merge方法m
支付宝的钱怎么转到银行卡支付宝使用说明支付宝的钱怎么转到银行卡支付宝使用说明支付宝的钱怎么转到银行卡支付宝使用说明支付宝的钱怎么转到银行卡支付宝使用说明支付宝的
复制代码代码如下:/**函数名称:DateUtil*作者:yithcn*功能说明:日期函数*使用说明:*创建日期:2010.10.14*/varDateUtil
概述:@Valid是使用Hibernatevalidation的时候使用@Validated是只用SpringValidator校验机制使用说明:java的JS
券基本上都是能在促说apρ上领到的。不过每个优惠券都有使用说明的,登录你的购物账号,点击优惠券会显示你领到的所有优惠券,后边就有相应的使用说明,你点进去看一下就