Skip to main content
 首页 » 编程设计

python之使用 groupby 过滤重复值

2025年05月04日19cyq1162

我正在阅读文档以了解与 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”中使用不同的列名

谢谢

请您参考如下方法:

如何复制:

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