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

如何在Pandas DataFrame中替换A列等于B列的行的C列值

解决方法:替换符合条件行的指定列值

你已经成功筛选出了目标行,接下来只需要用Pandas的.loc索引器来精准定位并修改即可,这也是最稳妥的方式(避免触发SettingWithCopyWarning警告):

import pandas as pd

# 你的原始DataFrame
data1 = pd.DataFrame(data=[[1, 10, 100], [2,2,200],[3,3,300], [4,40,400]], columns=['A', 'B', 'C'])

# 核心代码:定位符合条件的行和C列,赋值为-1
data1.loc[data1['A'] == data1['B'], 'C'] = -1

# 查看结果
print(data1)

运行后就能得到你想要的输出:

A   B    C
0  1  10  100
1  2   2   -1
2  3   3   -1
3  4  40  400

另一种可选方法:使用numpy.where

如果你偏好生成新列的方式,也可以用numpy.where来实现,逻辑是“满足条件则赋值-1,否则保留原C列值”:

import numpy as np

data1['C'] = np.where(data1['A'] == data1['B'], -1, data1['C'])

两种方法都能达到你的需求,.loc更适合原地修改DataFrame,而numpy.where在需要复杂条件判断时灵活性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:55:47