我使用这个函数就是用来清洗数据,删选过滤掉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.150479 1 0.104931 -0.271810 -0.054599
0.361612 2 0.590216 0.218049 0.157213 0.643540 3 -0.254449 -0.593278 -0.150455 -
0.244485 >>> df.A>0#布尔索引 0 False 1 True 2 True 3 False Name: A, dtype: bool
#布尔索引应用 >>> df[df.A>0] A B C D 1 0.104931 -0.271810 -0.054599 0.361612 2
0.590216 0.218049 0.157213 0.643540 >>>
isin()

添加一列E
>>> df['E']=['a','a','c','b'] >>> df A B C D E 0 -0.018330 2.093506 -0.086293 -
2.150479 a 1 0.104931 -0.271810 -0.054599 0.361612 a 2 0.590216 0.218049
0.157213 0.643540 c 3 -0.254449 -0.593278 -0.150455 -0.244485 b >>> df.E.isin([
'a','c']) 0 True 1 True 2 True 3 False Name: E, dtype: bool >>> df.isin(['b','c'
])#整个df也同样适用 A BC D E 0 False False False False False 1 False False False False
False 2 False False False False True 3 False False False False True #应用 >>>
df[df.E.isin(['a','c'])] A B C D E 0 -0.018330 2.093506 -0.086293 -2.150479 a 1
0.104931 -0.271810 -0.054599 0.361612 a 2 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 E 0 -0.01833 2.093506 -0.086293 0 a
也可以
不推荐,你试一下就知道
df.isin({ '某列':[条件], '某列':[条件], }) #应用 >>> df.D=[0,1,0,2] >>> df A B C D E 0 -
0.018330 2.093506 -0.086293 0 a 1 0.104931 -0.271810 -0.054599 1 a 2 0.590216
0.218049 0.157213 0 c 3 -0.254449 -0.593278 -0.150455 2 b >>> df[df.isin({'D':[0
,3],'E':['a','d']})] A B C D E 0 NaN NaN NaN 0.0 a 1 NaN NaN NaN NaN a 2 NaN
NaN NaN0.0 NaN 3 NaN NaN NaN NaN NaN #没错这不适合选出一行 >>> df.isin({'D':[0,3],'E':['a'
,'d']}) A B C D E 0 False False False True True 1 False False False False True 2
False False False True False 3 False False False False False
isin()的逆函数

告诉你没有isnotin,它的反函数就是在前面加上 ~ ,其他用法同上。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信