You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python pandas为Excel表格内的重复记录添加标识?

pandas批量标记Excel重复记录实现方案

问题背景

  • 现有存储学生信息的Excel文件,原始表内容如下:
'Born Date   Student Name  Duplicate 
 2001-01-01     Tommy
 2001-03-04     Annie         
 2001-05-13     Billy
 2001-07-31     Bob
 2001-03-04     Annie         
 2001-04-04     Janet
 2001-11-05     Betty
 2001-12-15     Lucy          
 2001-08-25     Nicky
 2001-12-15     Lucy          
 2001-07-31     John
  • 需求:所有存在重复的记录,统一在Duplicate列标注Yes,非重复记录该列留空,期望输出效果如下:
Born Date   Student Name  Duplicate 
 2001-01-01     Tommy
 2001-03-04     Annie        Yes
 2001-05-13     Billy
 2001-07-31     Bob
 2001-03-04     Annie        Yes
 2001-04-04     Janet
 2001-11-05     Betty
 2001-12-15     Lucy         Yes
 2001-08-25     Nicky
 2001-12-15     Lucy         Yes
 2001-07-31     John
  • 当前已编写的初始代码:
import pandas as pd
df = pd.read_excel('C:/Users/Desktop/Studen List.xlsx')
dc = df.duplicated()
print(dc)

现有代码问题

  1. df.duplicated()默认参数keep='first',只会将重复项中除第一条出现的记录标记为True,无法实现所有重复条目都被标记的需求
  2. 未指定判断重复的列范围,默认会按所有列判断,表中空值的Duplicate列会干扰重复判断逻辑
  3. 识别出的重复布尔结果没有赋值回Duplicate列,也没有做值映射

完整可运行代码

import pandas as pd

# 读取原始Excel文件
df = pd.read_excel('C:/Users/Desktop/Studen List.xlsx')

# 按出生日期、姓名两个核心字段识别重复,keep=False表示所有重复项均标记为True
is_duplicate = df.duplicated(subset=['Born Date', 'Student Name'], keep=False)

# 给重复行的Duplicate列赋值Yes
df.loc[is_duplicate, 'Duplicate'] = 'Yes'

# 将处理后的结果保存为新Excel文件,不需要可注释该行
df.to_excel('C:/Users/Desktop/Student_List_Processed.xlsx', index=False)

# 打印结果校验
print(df)

关键参数说明

  • subset=['Born Date', 'Student Name']:指定仅通过出生日期、学生姓名两个字段判断是否重复,排除空的Duplicate列对判断逻辑的干扰
  • keep=False:只要某条记录存在和其他记录字段匹配的重复情况,无论出现顺序,全部标记为重复,完全匹配需求
  • df.loc[is_duplicate, 'Duplicate'] = 'Yes':通过布尔索引定位所有重复行,对对应行的Duplicate列写入标记值

内容的提问来源于stack exchange,提问作者CHL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 09:48:27