嗨我想要删除出现次数少于数字的条目的行,例如:
df = pd.DataFrame({'a': [1,2,3,2], 'b':[4,5,6,7], 'c':[0,1,3,2]})
df
a b c
0 1 4 0
1 2 5 1
2 3 6 3
3 2 7 2
如果列’a’中的出现次数少于两次,我想删除所有行.
通缉输出:
a b c
1 2 5 1
3 2 7 2
我知道的:
我们可以通过condition = df [‘a’]找到出现次数.value_counts()< 2,它会给我一些类似的东西:
2 False
3 True
1 True
Name: a, dtype: int64
但我不知道如何从这里删除行.
提前致谢!
res = df[df.groupby('a')['b'].transform('size') >= 2]
transform
方法将df.groupby(‘a’)[‘b’].size()映射到与df [‘a’]对齐的df.
s = df['a'].value_counts()
res = df[df['a'].map(s) >= 2]
print(res)
a b c
1 2 5 1
3 2 7 2