微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如何在定义的数字范围之外搜索所有数据帧行?

所以我有一个50列和400行数据框,包含所有数字.我试图仅显示具有超出预定义范围的值的列(即仅显示不在-1到3之间的值).

到目前为止,我有

df[(df.T > 3).all()]

显示大于2的值,我可以将整数更改为其他感兴趣的数字,但我可以写一些东西来显示超出范围的数字(即显示所有具有-1到3范围之外的值的列).

解决方法:

你可以使用pd.DataFrame.mask

np.random.seed([3,1415])
df = pd.DataFrame(np.random.randint(-2, 4, (5, 3)), columns=list('abc'))
print(df)

   a  b  c
0 -2  1  0
1  1  0  0
2  3  1  3
3  0  1 -2
4  0 -2 -2

Mask使细胞评估为真NaN

df.mask(df.ge(3) | df.le(-1))

     a    b    c
0  NaN  1.0  0.0
1  1.0  0.0  0.0
2  NaN  1.0  NaN
3  0.0  1.0  NaN
4  0.0  NaN  NaN

或者相反

df.mask(df.lt(3) & df.gt(-1))

     a    b    c
0 -2.0  NaN  NaN
1  NaN  NaN  NaN
2  3.0  NaN  3.0
3  NaN  NaN -2.0
4  NaN -2.0 -2.0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐