我有一个大约有 12K+ 行和 16 列的数据框。有些行是重复的,这很好,但我想将那些在 1 列重复但在这一特定列不同的行分组。一个简单的例子,参考下面:
ID Plate_Number
A SWD1314
A SKT5721
B SKT1419
B SKT1419
C MNJ1009
C MNJ1009
现在,我想要的输出是获得 ID A 而不是 B 的客户。基本上,我想看到一个客户
我希望结果是这样的: DF 仅适用于客户 A
ID Plate_Number
A SWD1314
A SKT5721
DF 仅适用于客户 B 和 C :
ID Plate_Number
B SKT1419
B SKT1419
C MNJ1009
C MNJ1009
我尝试过使用 groupBy :
df.groupby(['ID'])
我也试过:
mask = df.duplicated(subset=['ID'], keep=False)
df[mask]
但他们都会在列表中给客户 B 和 C。我想获得具有不同车牌号的重复 ID。一定有一种我不知道的方法可以只获取客户 A,而不是 B 和 C。谢谢。
编辑:如果可能,我不想删除客户 B 和 C,因为它们仍然相关,只是客户 A 属于另一个组,而客户 B 和 C 属于另一个组。
编辑:增加了 1 个预期结果,即客户 B 和 C 的 DF。
答案 0 :(得分:2)
带有 drop_duplicates
的替代方案:
df.drop_duplicates(subset=['ID', 'Plate_Number'], keep=False)
输出:
ID Plate_Number
0 A SWD1314
1 A SKT5721