Python中文
首页
教程
问答
标签
搜索
登录
注册
在Python中,有没有直接的方法来过滤pd.数据帧以列的两个值范围为条件?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我得到了一个简单的数据帧:</p> <pre><code>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 </code></pre> <p>我所要做的就是选择大于阈值a的值和小于阈值b的值,这两个值的范围是不重叠的。想象一下(大于85%和小于15%)。显然,这两个条件都是独立的。所以我是这样做的:</p> <pre><code>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 </code></pre> <p>我得到了正确的答案:</p> <pre><code>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 </code></pre> <p>但是,我想知道是否有一个直接的方法来做到这一点,而不创建自定义公式。也许是使用groupby。。。。你知道吗</p> <p>谢谢你的帮助</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你可能想用布尔掩蔽。你知道吗</p> <pre><code>mask1 = df['1'] > .85 mask2 = df['1'] < .15 filtered = df[mask1 | mask2] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python闭包能否存储和更改外部标量?
6 回答
python闭包行为怪异
10 回答
python闭包问题源代码编译器
1 回答
Python问gam
5 回答
Python问答游戏逻辑E
10 回答
Python问答程序。你能帮我找出哪里出了问题吗?谢谢
9 回答
Python问答程序问题与分数
1 回答
Python问题
2 回答
Python问题 | 在https://www.testdome.com开发的代码测试分数有bug吗
6 回答
Python问题,上载文件的名称和缩略图
5 回答
python问题,将img的相对url连接到绝对url
8 回答
Python问题,机械化机器人
1 回答
Python问题,用不同的模板发送大量电子邮件?
7 回答
Python问题,类型错误:“float对象不能解释为integer”。无法在“for”循环中返回函数的值
3 回答
Python问题:“overflowerr:Python int太大,无法转换为C long”
1 回答
Python问题:“空数据帧的绑定方法NDFrame.head”
9 回答
Python问题:AttributeError:'_io.TextIOWrapper'对象没有属性'split'
7 回答
Python问题:AttributeError:'dict'对象没有'upper'属性
3 回答
Python问题:CS圆7C循环,正方形普查
8 回答
Python问题:ODE系统的参数估计,例如系数是函数
2 回答