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中两个字典的交集
10 回答
python中两个字符串上的异或操作数?
7 回答
Python中两个字符串中的类似句子
5 回答
Python中两个字符串之间的Hamming距离
6 回答
python中两个字符串之间的匹配模式
1 回答
python中两个字符串之间的按位或
7 回答
python中两个字符串之间的数据(字节)切片
6 回答
python中两个字符串之间的模式
8 回答
python中两个字符串作为子字符串的区别
4 回答
Python中两个字符串元组的比较
4 回答
Python中两个字符串列表中的公共字符串
6 回答
python中两个字符串的Anagram测试
8 回答
Python中两个字符串的正则匹配
2 回答
python中两个字符串的笛卡尔乘积
8 回答
Python中两个字符串相似性的比较
6 回答
python中两个字符串语义相似度的求法
1 回答
Python中两个字符置换成固定长度的字符串,每个字符的数目相等
9 回答
Python中两个对数方程之间的插值和平滑数据
10 回答
Python中两个对象之间的And/Or运算符
4 回答
python中两个嵌套字典中相似键的和值
10 回答