从numpy数组中删除熊猫中的特定行

时间:2018-12-21 11:31:32

标签: python pandas

我有一个数据行,它长数千行,看起来像这样:

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中删除?

2 个答案:

答案 0 :(得分:1)

我相信您需要链条2的条件-所有受骗者都duplicatedkeep=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   ...     ...