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

如何在Pandas中当ID和year列值重复时清空对应employee列值

问题原因分析
  • 你原来的代码逻辑存在错误:df["ID"].duplicated() & df["year"].duplicated() 是分别判断「ID单独重复」和「year单独重复」后取交集,和你需要的「ID+year组合同时重复」的逻辑完全不符,这就是出现误删的核心原因。
    举个简单的反例:如果有行数据是ID=2, year=2023,其中ID=2之前在2022年出现过(ID列判定为重复),year=2023之前被ID=1使用过(year列判定为重复),那这行的ID+year组合其实是首次出现,不该被清空,但按你原来的逻辑就会被误判为需要清空。
修正代码

直接使用duplicated方法的subset参数指定要判断重复的列组合即可,默认keep='first'参数会自动标记除每组第一次出现之外的所有重复行:

df.loc[df.duplicated(subset=['ID', 'year']), 'employee'] = ''
效果验证

以测试数据为例:

IDyearemployee
12022张三
12022李四
12023王五
22022赵六
22023孙七
22023周八

运行修正代码后输出结果:

IDyearemployee
12022张三
12022
12023王五
22022赵六
22023孙七
22023

完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:06:03