在Python中,有没有一种直接的方法来过滤pddataframe条件2列的值范围?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Python中,有没有一种直接的方法来过滤pddataframe条件2列的值范围?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1336字,纯文字阅读大概需要2分钟。
内容图文
![在Python中,有没有一种直接的方法来过滤pddataframe条件2列的值范围?](/upload/InfoBanner/zyjiaocheng/753/3c42586b254a4d7b9f18d3c0f9154726.jpg)
我有一个简单的数据帧:
df
Out[102]:
0 1
0 nfp_zb 0.04325
1 ftb_zb 0.05645
2 ftb_cl 0.09055
3 cl_2 0.12865
4 ftb_gc 0.13385
5 cl_1 0.22795
6 cl_3 0.26985
7 es_3 0.37955
8 es_2 0.39450
9 zb_3 0.42170
10 es_1 0.45170
11 nfp_es 0.47190
12 zb_2 0.50130
13 nfp_cl 0.53170
14 nfp_gc 0.74260
15 gc_2 0.76640
16 gc_3 0.80915
17 zb_1 0.83010
18 gc_1 0.89795
我所要做的就是选择大于阈值a且小于阈值b的值,其中两个值范围是NON OVERLAPPING.想象一下(大于85%,小于15%).显然,这两个条件都是独立的.所以我这样做:
def filter(df):
df['filter'] = ""
df.loc[df[1] > 0.85, 'filter'] = 1
df.loc[df[1] < 0.15, 'filter'] = 1
df = df[df['filter'] == 1]
del df['filter']
return df
我得到了正确的答案:
filter(df)
Out[104]:
0 1
0 nfp_zb 0.04325
1 ftb_zb 0.05645
2 ftb_cl 0.09055
3 cl_2 0.12865
4 ftb_gc 0.13385
18 gc_1 0.89795
但是,我想知道是否有直接的方法来做到这一点,而无需创建自定义公式.也许使用groupby ….
谢谢您的帮助
解决方法:
您可以将所有条件放入.loc访问器中,由或运算符分隔:
df.loc[(df['1'] > 0.85) | (df['1'] < 0.15), :]
Out[19]:
0 1
0 nfp_zb 0.04325
1 ftb_zb 0.05645
2 ftb_cl 0.09055
3 cl_2 0.12865
4 ftb_gc 0.13385
18 gc_1 0.89795
人们在其他答案中给出的建议应该同样有效,你只需要改变不平等并使用或代替和.
内容总结
以上是互联网集市为您收集整理的在Python中,有没有一种直接的方法来过滤pddataframe条件2列的值范围?全部内容,希望文章能够帮你解决在Python中,有没有一种直接的方法来过滤pddataframe条件2列的值范围?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。