删除具有低频值列的所有行的最佳实践是什么?
数据框:
IN:
foo bar poo
1 a A
2 a A
3 a B
4 b B
5 b A
6 b A
7 c C
8 d B
9 e B
示例1:
删除“poo”列中频率值小于 3 的所有行:
OUT:
foo bar poo
1 a A
2 a A
3 a B
4 b B
5 b A
6 b A
8 d B
9 e B
示例2:
删除“bar”列中频率值小于 3 的所有行:
OUT:
foo bar poo
1 a A
2 a A
3 a B
4 b B
5 b A
6 b A
这应该很容易概括。你需要groupby
+ transform
+ count
,然后过滤结果:
col = 'poo' # 'bar'
n = 3 # 2
df[df.groupby(col)[col].transform('count').ge(n)]
foo bar poo
0 1 a A
1 2 a A
2 3 a B
3 4 b B
4 5 b A
5 6 b A
7 8 d B
8 9 e B
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)