首页 > 解决方案 > 使用 groupby 过滤重复值

问题描述

我正在阅读文档以了解与 groupby 一起使用时的方法过滤器。为了理解它,我有以下场景:

我正在尝试从我的 DataFrame df 中获取按城市分组的重复名称。下面是我的尝试:

df = pd.DataFrame({
    'city':['LA','LA','LA','LA','NY', 'NY'],
    'name':['Ana','Pedro','Maria','Maria','Peter','Peter'],
    'age':[24, 27, 19, 34, 31, 20],
    'sex':['F','M','F','F','M', 'M'] })

df_filtered = df.groupby('city').filter(lambda x: len(x['name']) >= 2)

df_filtered

我得到的输出是:

city    name    age sex
LA      Ana     24  F
LA      Pedro   27  M
LA      Maria   19  F
LA      Maria   34  F
NY      Peter   31  M
NY      Peter   20  M

我期待的输出是:

city    name    age sex
LA      Maria   19  F
LA      Maria   34  F
NY      Peter   31  M
NY      Peter   20  M

我不清楚在哪些情况下我必须在“groupby”方法和“filter”方法的“len”中使用不同的列名

谢谢

标签: pythonpandas

解决方案


怎么样duplicated

df[df.duplicated(['city', 'name'], keep=False)]

推荐阅读