数据帧:
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
答案 0 :(得分:1)
执行此操作的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