数据框:
Group Name Pop
A F 5
A C 4
A D 4
B E 6
B L 4
我需要一个数据框,其中只有数据保留在一组中至少有三个名字的地方。 所以输出:
Group Name Pop
A F 5
A C 4
A D 4
我认为最简单的方法是按组值计数为三个或更多的组进行分组。我尝试了不同的方法,总是有一些错误。
df['Group'].apply(lambda x: x.value_counts()>2) #for example this
最佳答案
执行此操作的groupby
方法是按“Group”分组,然后是filter
:
In [6]:
df.groupby('Group').filter(lambda x: x['Name'].count() > 2)
Out[6]:
Group Name Pop
0 A F 5
1 A C 4
2 A D 4
以上不排除重复名称,如果您想要 3 个或更多的唯一名称计数,则可以使用 nunique
进行过滤:
In [7]:
df.groupby('Group').filter(lambda x: x['Name'].nunique() > 2)
Out[7]:
Group Name Pop
0 A F 5
1 A C 4
2 A D 4
关于python - 选择重复出现的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721216/