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

如何在DataFrame中识别三列重复值并为对应列数值加1

处理DataFrame多列重复值并更新指定列

需求说明

识别DataFrame中Column1、column2、column3三列的重复组合,对这些重复行对应的columnx列数值加1。

原始数据

import pandas as pd

# 构造目标DataFrame
d = {
    'Column1': ['1', '1', '2','3'],
    'column2': [101, 101, 234, 203],
    'column3': ['c', 'c', 'd','c'],
    'columnx': ['0.1', '0.2', '0.1','0.2']
}
df = pd.DataFrame(d)
print("原始DataFrame:")
print(df)

输出结果:

Column1  column2 column3 columnx
0       1      101       c      0.1
1       1      101       c      0.2
2       2      234       d      0.1
3       3      203       c      0.2

处理步骤及代码

  1. 转换columnx为数值类型:原始columnx是字符串格式,需先转为浮点型才能进行加法运算
  2. 标记多列重复行:使用duplicated方法,设置keep=False会把所有属于重复组合的行都标记出来(包括第一次出现的行)
  3. 更新重复行的columnx值:对标记为重复的行,给columnx数值加1

代码实现:

# 转换columnx为浮点型
df['columnx'] = df['columnx'].astype(float)

# 生成三列重复行的标记掩码
duplicate_mask = df.duplicated(subset=['Column1', 'column2', 'column3'], keep=False)

# 对重复行的columnx执行加1操作
df.loc[duplicate_mask, 'columnx'] += 1

print("处理后的DataFrame:")
print(df)

输出结果:

Column1  column2 column3  columnx
0       1      101       c      1.1
1       1      101       c      1.2
2       2      234       d      0.1
3       3      203       c      0.2

内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:17:25