You need to enable JavaScript to run this app. Pandas基于多列识别重复行并替换指定列值的问题求解
优惠活动
大模型
产品
解决方案
定价
更多

Pandas基于多列识别重复行并替换指定列值的问题求解

问题修正方案

核心错误说明

你原来的代码存在3个核心问题:

  • 仅对筛选出的重复行切片做修改,没有回写到原DataFrame的对应列,改动不会生效
  • replace方法使用逻辑错误,不需要传入整个v列做匹配,直接对目标列赋值即可
  • 赋值为字符串"0",会改变v列的数值类型,不符合输出要求

正确实现代码

结合你给出的预期输出(保留KRO分组内v为13的行),需要将v列也加入判重子集,代码如下:

# 按x、y、c、v四列识别重复,保留每组第一次出现的行,其余重复行的v列设为0
df.loc[df.duplicated(subset=['x','y','c','v'], keep='first'), 'v'] = 0

如果你确实需要仅按x、y、c三列判重(即同一x、y、c下所有后续行的v都设为0),去掉subset参数中的'v'即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 02:36:04