【发布时间】:2022-01-22 04:42:23
【问题描述】:
我有一个df:
id value
1 10
2 15
1 10
1 10
2 13
3 10
3 20
我试图只保留 value 列中具有 1 个唯一值的行,以便结果 df 如下所示:
id value
1 10
1 10
1 10
我删除了id = 2, 3,因为它在value、15, 13 & 10, 20 列中分别有多个唯一值。
I read this answer.
但这只是删除了重复项,而我想检查给定列是否 - 在本例中,列 value 具有超过 1 个唯一值。
我试过了:
df['uniques'] = pd.Series(df.groupby('id')['value'].nunique())
但这会为每一行返回nan,因为我试图在分组后将n 返回到n+m 行。我可以编写一个函数并将其应用于每一行,但我想知道是否有一个智能快速过滤器可以实现我的目标。
【问题讨论】: