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

如何在Pandas DataFrame满足指定条件时更新Column5列数值?

问题描述

有如下Pandas DataFrame:

Column1 Column2 Column3 Column4  Column5 Column6
0  aaa      abb  jnhs  01/01/2020      40   TEST
1  aba      vvv  jnjh  01/01/2020      34   TEST

需要实现:当Column6等于"TEST"时,将该行Column5的数值加1,最终返回完整DataFrame,仅更新符合条件的单元格。期望结果:

Column1 Column2 Column3 Column4  Column5 Column6
0  aaa      abb  jnhs  01/01/2020      41   TEST
1  aba      vvv  jnjh  01/01/2020      35   TEST

尝试过的代码:

df['Column5'] = np.where(df['Colum6'] == "TEST", +1, "NA")

但这段代码会把Column5的值直接替换为1,而非在原有数值上加1。

解决方法

方法1:修正np.where写法

你的代码问题有两个:一是未引用原Column5值做计算,二是列名拼写错误(Colum6应为Column6)。正确写法需在满足条件时取原数值加1,不满足时保留原数值:

import numpy as np
import pandas as pd

# 针对符合条件的行更新Column5,其余行保留原值
df['Column5'] = np.where(df['Column6'] == "TEST", df['Column5'] + 1, df['Column5'])

方法2:使用df.loc直接定位更新(推荐)

这种方式直接定位满足条件的行和目标列,执行加1操作,可读性更高且更高效:

# 仅对Column6为TEST的行,将Column5加1
df.loc[df['Column6'] == "TEST", 'Column5'] += 1

该方法只会修改符合条件的单元格,其余单元格保持原样,是处理这类条件更新的常用最优方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:45:30