
如何python筛选重复数据
用户关注问题
我有一个包含大量数据的列表或数据框,怎样用Python代码快速找出里面的重复项?
使用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)
我想去除数据中的重复行,只想保留每组重复数据中的一条记录,Python有什么简单方法?
用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)
有时候我只想根据部分字段来判断重复,Python中如何实现?
在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'来判断重复项。