求助:使用Pandas重命名CSV列后无法保存,仅终端输出内容
问题分析与解决
你的代码存在两个关键问题,导致无法完成文件保存:
- 错误使用
inplace=True:当rename方法设置inplace=True时,会直接修改原DataFrame对象,且返回值为None。你此时将返回值重新赋值给df,会导致df变成None,后续无法执行保存操作。 - 缺少文件保存代码:仅完成列重命名操作,但未调用Pandas的
to_csv方法将修改后的DataFrame写入文件。
修正后的代码
方式一:不使用inplace=True(更推荐,避免赋值错误)
import pandas as pd # 读取CSV文件 df = pd.read_csv('input.csv') # 查看原列名(可选操作) print(df.columns) # 重命名列,返回新的DataFrame df = df.rename(columns={'AREA':'SA2_code','Area':'SA2_name','Value':'RegSmokers_cnt'}) # 保存重命名后的文件,index=False避免生成额外索引列 df.to_csv('output.csv', index=False)
方式二:使用inplace=True(注意不要重新赋值)
import pandas as pd df = pd.read_csv('input.csv') print(df.columns) # 直接修改原DataFrame,无需赋值 df.rename(columns={'AREA':'SA2_code','Area':'SA2_name','Value':'RegSmokers_cnt'}, inplace=True) # 保存文件 df.to_csv('output.csv', index=False)
补充说明
- 若需要覆盖原文件,可将
output.csv替换为input.csv,但操作前建议备份原文件避免数据丢失。 index=False参数可选,但建议添加,否则保存的CSV会多出一列默认的索引值。
内容的提问来源于stack exchange,提问作者jon zendatta
相关产品推荐
相关产品推荐

