选择重复出现的值

时间:2015-04-18 18:31:09

标签: python pandas

数据帧:

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

1 个答案:

答案 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