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

如何使用If条件对DataFrame的列值进行条件替换

解决方案

以下基于Python pandas库实现需求,提供两种常用可行方案:


方案1:使用numpy.where(写法最简洁)

该方法逻辑完全对应你描述的IF判断规则,一行代码即可完成替换:

import pandas as pd
import numpy as np

# 此处df为你已构造好的DataFrame对象
df['Name'] = np.where(df['Flag_Name'] == 1, df['New_Name'], df['Name'])

np.where的三个参数依次为:判断条件、条件满足时的返回值、条件不满足时的返回值,和需求逻辑完全匹配。


方案2:使用pandas原生loc索引(无需引入numpy依赖)

如果你不想额外依赖numpy库,可以用pandas自带的条件索引实现,仅修改符合要求的行:

# 仅筛选Flag_Name等于1的行,将对应行的Name列替换为New_Name列的值
df.loc[df['Flag_Name'] == 1, 'Name'] = df.loc[df['Flag_Name'] == 1, 'New_Name']

注意:如果你的Flag_Name列存储的是字符串类型的数值,需要将判断条件中的1修改为'1',避免数据类型不匹配导致判断失效。


运行上述任意一种方案后,最终得到的DataFrame结果如下:

NameNew_NameFlag_Name
NikeNike1
AdidasAdidas1
MicrosoftMicrosoft0
AppleApple1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:15:03