gpt4 book ai didi

python - 按出现次数分组

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:06 26 4
gpt4 key购买 nike

您好,我想删除出现次数小于某个数字的条目的行,例如:

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

但我不知道应该如何从这里开始删除行。
提前致谢!

最佳答案

groupby + size

res = df[df.groupby('a')['b'].transform('size') >= 2]

transform方法将 df.groupby('a')['b'].size() 映射到与 df['a'] 对齐的 df .

value_counts + map

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

关于python - 按出现次数分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com