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

4 投票
2 回答
16101 浏览
提问于 2025-04-18 01:40

我正在处理一个很大的数据集,发现里面有一些重复的记录。我想看看这些重复的行是什么样的,然后决定要删除哪一行。有没有办法让我选出那些有重复索引(或者在任何列中有重复值)的数据部分呢?

任何帮助都非常感谢。

2 个回答

5

使用 DataFrameduplicated 方法:

df.duplicated(cols=[...])

可以查看这个链接了解更多信息:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html

编辑

你还可以使用:

df[df.duplicated(cols=[...]) | df.duplicated(cols=[...], take_last=True)]

或者,你可以使用 groupbyfilter

df.groupby([...]).filter(lambda df:df.shape[0] > 1)

或者使用 apply

df.groupby([...], group_keys=False).apply(lambda df:df if df.shape[0] > 1 else None)
9

你可以使用 pandas.duplicated 这个功能,然后用一个 布尔值 来筛选数据。如果你想了解更多关于任何方法或高级功能的信息,建议你查看它的 文档说明

这样做就能解决你的问题:

df[df.duplicated('Column Name', keep=False) == True]

在这里,keep=False 会返回所有在那个列中有重复值的行。

撰写回答