我有一个数据行,它长数千行,看起来像这样:
ID Email Address
1 ... ...
2 ... ...
3 ... ...
4 ... ...
1 ... ...
2 ... ...
5 ... ...
5 ... ...
6 ... ...
我要做的是删除ID的重复项,因此每人只有一个ID。我不能使用drop_duplicates(),因为大多数人没有ID,这也会丢弃它们(不好!)
是否有一种方法可以删除特定的行,并且仅保留一个ID实例。
如果有帮助,我有一个要删除的所有重复ID的数据框。例如对于我上面给出的示例:
ID Email Address
1 ... ...
2 ... ...
5 ... ...
也许有一种方法可以将其转换为ID系列/数组并以这种方式从df中删除?
答案 0 :(得分:1)
我相信您需要链条2的条件-所有受骗者都duplicated
和keep=False
,而第一任受骗者没有参数:
df = df[df.duplicated(subset='ID', keep=False) & df.duplicated(subset='ID')]
print (df)
ID Email Address
4 1 ... ...
5 2 ... ...
7 5 ... ...
答案 1 :(得分:1)
这是您想要的吗?
df[df.duplicated(subset='ID')]
ID Email Address
4 1 ... ...
5 2 ... ...
7 5 ... ...