如何python筛选重复数据

如何python筛选重复数据

作者:Rhett Bai发布时间:2026-01-07阅读时长:0 分钟阅读次数:13

用户关注问题

Q
如何用Python快速找出重复的记录?

我有一个包含大量数据的列表或数据框,怎样用Python代码快速找出里面的重复项?

A

使用Pandas的duplicated函数筛选重复项

可以使用Pandas库中的duplicated()函数,它会返回一个布尔序列,用来判断每行数据是否重复。通过设置keep参数为False,可以标记所有重复的行。示例代码如下:

import pandas as pd

df = pd.DataFrame({'A':[1,2,2,3,4,4,4],'B':[5,6,6,7,8,8,8]})
duplicates = df[df.duplicated(keep=False)]
print(duplicates)

Q
Python中怎样删除重复数据并只保留一条?

我想去除数据中的重复行,只想保留每组重复数据中的一条记录,Python有什么简单方法?

A

用drop_duplicates()方法去重

Pandas提供了drop_duplicates()方法,可以帮助去除重复行。默认情况下,它会保留每组重复数据中的第一条记录。例如:

import pandas as pd

df = pd.DataFrame({'A':[1,2,2,3,4,4],'B':[5,6,6,7,8,8]})
df_unique = df.drop_duplicates()
print(df_unique)

Q
怎样判断数据中的重复项是基于哪些字段?

有时候我只想根据部分字段来判断重复,Python中如何实现?

A

在duplicated和drop_duplicates方法中指定subset字段

通过在duplicated()或drop_duplicates()方法中传入subset参数,可以指定只根据某些列判断是否重复。例如:

import pandas as pd

df = pd.DataFrame({'A':[1,2,2,3],'B':[5,6,7,7],'C':[9,10,11,12]})
duplicates = df[df.duplicated(subset=['A','B'])]
print(duplicates)

这样只会根据列'A'和'B'来判断重复项。