在Pandas中使用drop_duplicates后,如何查看被移除的重复记录?
如何查看pandas中drop_duplicates移除的重复记录?
嘿,这个需求特别常见,直接用inplace=True确实会直接修改原数据,导致没法回溯被移除的重复项。其实只要调整一下操作顺序,就能轻松拿到这些需要人工检查的记录,具体操作如下:
步骤1:先提取即将被移除的重复记录
在执行去重之前,先用duplicated()方法标记出所有会被移除的重复项。默认情况下drop_duplicates会保留第一次出现的记录,所以我们用keep='first'来匹配这个逻辑:
# 筛选出所有会被drop_duplicates移除的重复记录(即除了第一次出现的其他重复项) removed_duplicates = df[df.duplicated(subset='Full Name', keep='first')]
你可以直接打印removed_duplicates或者导出成Excel,方便人工检查这些即将被删除的记录。
步骤2:执行去重操作
等你确认完重复记录后,再执行原本的去重操作就没问题了:
# 对原数据去重,和你最初的需求一致 df.drop_duplicates(subset='Full Name', keep='first', inplace=True)
额外技巧:查看完整的重复记录组
如果你想查看所有重复的记录(包括第一次出现的那条),方便对比同一姓名下的不同数据差异,可以把keep参数设为False,这样所有重复的记录都会被标记出来:
# 获取所有重复的记录组(包含每组的第一条) all_duplicate_groups = df[df.duplicated(subset='Full Name', keep=False)] # 按姓名排序,更直观地对比每组重复数据 all_duplicate_groups_sorted = all_duplicate_groups.sort_values('Full Name')
这样操作既完成了去重,又能完整保留需要人工检查的重复记录,完全不用担心数据丢失啦~
内容的提问来源于stack exchange,提问作者LCott
相关产品推荐
相关产品推荐

