首页 > 解决方案 > 从 numpy 数组中删除 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 中删除?

标签: pythonpandas

解决方案


我相信你需要链 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   ...     ...

推荐阅读