如果 df 按 A、B 和 C 分组,看起来像这样:
A B C D
1 53704 hf 51602
51602
53802
ss 53802
53802
2 12811 hf 54205
hx 50503
我尝试了以下内容,这与另一篇文章中的内容类似:
df.groupby([df['A'], df['B'], df['C']]).drop_duplicates(cols='D')
这显然是不正确的,因为它会产生一个空的数据框。我还尝试了 drop_duplicates 的另一种变体,它只是从“D”中删除所有重复项,无论它在哪个组中。我正在寻找的输出是:
A B C D
1 53704 hf 51602
53802
ss 53802
2 12811 hf 54205
hx 50503
因此,只有当它们被分组到相同的 A/B/C 组合中时,重复项才会被删除。