如何根据条件分组从 Dataframe 中删除行?

问题描述 投票:0回答:1

我有一个数据框,因为我想删除用户(列)的其他列(目的地)的唯一值少于 5 个的所有行,通常输出用户旅行超过 5 个唯一目的地的行。我使用此查询 **df.groupby(by = ['user_id'])['hotel_country'].nunique() ** 来查找所有行的唯一目的地但是当我输入小于 5 的条件并尝试删除它时,它会抛出一个错误。

df.drop(df.groupby(by = ['user_id'])['hotel_country'].nunique() < 5)

python pandas dataframe
1个回答
0
投票

在这里,我们临时在

DataFrame
中创建一个新列,其中包含该用户的唯一目的地数量,然后制作一个
Series
布尔值(掩码)以获取其用户少于 5 个目的地的所有行并删除他们

df.drop(
    df[df.groupby('user_id')['destination'].transform('nunique') < 5].index,
    inplace=True
)
© www.soinside.com 2019 - 2024. All rights reserved.