You need to enable JavaScript to run this app. pandas使用replace()替换数据后保存csv再读取内容未更新问题
优惠活动
大模型
产品
解决方案
定价
更多

pandas使用replace()替换数据后保存csv再读取内容未更新问题

问题原因

Pandas 的数据处理方法默认不会修改原对象,而是返回修改后的新对象。你现有代码中的 df.replace(numbered, fullname) 没有将返回结果赋值给变量,也没有开启原地修改参数,因此原 df 的数据没有发生任何变化,最终写入 CSV 文件的依然是未替换的编号内容。

修复方案

两种可直接使用的修复写法:

  • 方案1:将替换结果赋值给新变量(更推荐,不会修改原始数据,便于回溯)
import pandas as pd
numbered = [1,2,3,4]
# 注意:如果a/b/c/d是字符串值,需要添加引号包裹,否则会被识别为未定义变量报错
fullname = ['a','b','c','d']
# 接收replace返回的替换后数据
df_replaced = df.replace(numbered, fullname)
# 保存时添加index=False可避免写入多余的索引列,后续读取更方便
df_replaced.to_csv('fullname.csv', index=False)

df_fullname = pd.read_csv('fullname.csv')
df_fullname
  • 方案2:开启inplace参数直接修改原DataFrame
import pandas as pd
numbered = [1,2,3,4]
fullname = ['a','b','c','d']
# 添加inplace=True参数,直接修改原df
df.replace(numbered, fullname, inplace=True)
df.to_csv('fullname.csv', index=False)

df_fullname = pd.read_csv('fullname.csv')
df_fullname
补充说明
  • 若你需要只替换指定列的编号值,可以把写法调整为 df['指定列名'] = df['指定列名'].replace(numbered, fullname),避免误修改其他列的内容。
  • inplace 操作风险较高,一旦执行错误无法恢复原始数据,非必要场景优先选择赋值新变量的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 08:15:02