python - 从 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 中删除?
解决方案
我相信你需要链 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 ... ...