选择 pandas 中具有重复观察值的行

Zhe*_*Sun 4 python pandas

我正在处理一个大型数据集,并且我的索引中有一些重复项。我想(也许是视觉上)检查这些重复的行是什么样的,然后决定删除哪一行。有没有一种方法可以选择具有重复索引(或任何列中重复项)的数据帧切片?

任何帮助表示赞赏。

Pra*_*ell 9

您可以使用pandas.duplicated 然后使用 对其进行切片boolean。有关任何方法或高级功能的更多信息,我建议您始终检查其文档字符串。

好吧,这将为您解决这个问题:

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

在这里, keep=False将返回该列中具有重复值的所有行。


HYR*_*YRY 5

使用duplicated方法DataFrame

df.duplicated(cols=[...])
Run Code Online (Sandbox Code Playgroud)

请参阅http://pandas.pydata.org/pandas-docs/stable/ generated/pandas.DataFrame.duplicated.html

编辑

您可以使用:

df[df.duplicated(cols=[...]) | df.duplicated(cols=[...], take_last=True)]
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用groupbyand filter

df.groupby([...]).filter(lambda df:df.shape[0] > 1)
Run Code Online (Sandbox Code Playgroud)

或者apply

df.groupby([...], group_keys=False).apply(lambda df:df if df.shape[0] > 1 else None)
Run Code Online (Sandbox Code Playgroud)