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

Python中如何在for循环内使用df.replace(key:value)实现列值替换

问题根因

pandas的replace()方法默认不会修改原DataFrame,仅返回替换后的新对象,你当前的循环中仅调用了replace()却没有接收返回值,也没有开启原地修改参数,所以原数据集不会有变化。

解决方案

方案1:开启原地修改(适合小数据集快速操作)

在replace()参数中添加inplace=True,直接修改原DataFrame:

for i in cat_var_3:
    dummydf.replace({i: airdic}, inplace=True)

方案2:显式赋值接收结果(更稳定,推荐)

直接针对单列做替换后赋值回原列,逻辑更清晰,避免inplace参数的潜在风险:

for i in cat_var_3:
    dummydf[i] = dummydf[i].replace(airdic)

方案3:省略循环,批量替换(效率最高)

你可以直接构造多列的替换映射表,一次性完成所有目标列的替换,不需要写循环:

# 生成所有待处理列的替换规则
replace_mapping = {col: airdic for col in cat_var_3}
# 替换后赋值回原数据集
dummydf = dummydf.replace(replace_mapping)
验证方法

替换完成后可以打印目标列的前几行验证结果:

print(dummydf[cat_var_3].head())

以你提供的示例数据中Airline列为例,替换后原数值3会变为19.21744828,1变为16.39988767,4变为36.02920528即为替换成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:54:02