如何在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
处理步骤及代码
- 转换
columnx为数值类型:原始columnx是字符串格式,需先转为浮点型才能进行加法运算 - 标记多列重复行:使用
duplicated方法,设置keep=False会把所有属于重复组合的行都标记出来(包括第一次出现的行) - 更新重复行的
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
相关产品推荐
相关产品推荐

