从熊猫中删除非重复行

sal*_*hin 7 python pandas

这相当简单,但我无法理解。假设对于以下数据框,我只想保留 y 列中具有重复值的行:

>>> df
   x  y
    x   y
0   1   1
1   2   2
2   3   2
3   4   3
4   5   3
5   6   3
6   7   5
7   8   2
Run Code Online (Sandbox Code Playgroud)

所需的输出如下所示:

>>> df
    x   y
1   2   2
2   3   2
3   4   3
4   5   3
5   6   3
7   8   2
Run Code Online (Sandbox Code Playgroud)

我试过这个:

df[~df.duplicated('y')]
Run Code Online (Sandbox Code Playgroud)

但我明白了:

    x   y
0   1   1
1   2   2
3   4   3
6   7   5
Run Code Online (Sandbox Code Playgroud)

Ant*_*vBR 13

文档:https : //pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html

保持:{'first', 'last', False},默认为'first'

  • first :除第一次出现外,将重复项标记为 True。

  • last : 除最后一次出现外,将重复项标记为 True。

  • False :将所有重复项标记为 True。

这意味着您正在寻找:

df[df.duplicated('y',keep=False)]
Run Code Online (Sandbox Code Playgroud)

输出:

    x   y
1   2   2
2   3   2
3   4   3
4   5   3
5   6   3
7   8   2
Run Code Online (Sandbox Code Playgroud)