如何在使用pandas.DataFrame.drop_duplicates前留存被移除的重复数据?
保存pandas中被
drop_duplicates移除的重复数据 你可以通过pandas.DataFrame.duplicated()方法先筛选出重复行,再执行去重操作,就能提前保存被移除的内容:
具体步骤与示例
1. 准备示例数据
import pandas as pd # 创建测试DataFrame df = pd.DataFrame({ 'A': ['foo', 'bar', 'foo', 'bar', 'foo'], 'B': [1, 2, 1, 2, 1] })
2. 保存drop_duplicates默认会移除的重复行
默认drop_duplicates(keep='first')会保留首次出现的行,移除后续重复行。用相同的keep参数调用duplicated(),就能提取这些即将被移除的行:
# 获取即将被移除的重复行 removed_duplicates = df[df.duplicated(keep='first')] # 执行去重操作 df_clean = df.drop_duplicates(keep='first')
3. 保存所有重复出现的行(含首次出现的行)
如果想保存所有存在重复的行(不止是被移除的,连第一次出现的重复行也包含),可以设置keep=False:
# 获取所有重复行(只要该行有重复项就会被选中) all_duplicate_rows = df[df.duplicated(keep=False)]
关键说明
duplicated()返回布尔值Series,True标记对应行属于重复行,参数keep的规则和drop_duplicates完全一致:keep='first':标记除首次出现外的重复行keep='last':标记除最后一次出现外的重复行keep=False:标记所有重复行
内容的提问来源于stack exchange,提问作者corsin sauber
相关产品推荐
相关产品推荐

