python - 选择重复出现的值

标签 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

最佳答案

执行此操作的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/

相关文章:

python-2.7 - sklearn grid.fit(X,y) - 错误 : “positional indexers are out-of-bounds” for X_train, y_train

python - 使用字典插入mysql

python - 如何使用我想要的代码对分类列进行编码?

python - 使用 Python 查找带有正则表达式的重叠序列

python - 绘制分组的 Pandas 数据框

Python CSV : Grab all values in row with conditions for time values

python - 在 slug 中编写波斯语并在 django 的地址栏中使用它

python - 将元组的一部分解包为元组

python - Pandas:分离分组和索引

python - Pandas 多索引数据框选择数据