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

如何高效批量一次性重命名Pandas DataFrame所有列名

解决方案

你不需要手动编写df.rename(columns={})的一一映射字典,从给出的示例来看,所有待修改的列名遵循完全统一的命名规则,直接做批量字符串转换即可,列数越多这种方式的效率优势越明显,还能避免手动输入映射时的拼写错误。

方法1:pandas向量化字符串操作(推荐)

原列名格式统一为brand_spend_<品类>,转换逻辑非常清晰:

  1. 去掉开头固定前缀brand_
  2. 将剩余字符串里的下划线全部替换为空格
  3. 在开头拼接%

对应代码仅需一行:

df.columns = '% ' + df.columns.str.removeprefix('brand_').str.replace('_', ' ')

执行后列名会自动转换为你需要的'% spend kitchen'、'% spend car'、'% spend home',后续如果新增同规则的列(比如brand_spend_pet、brand_spend_outdoor),代码不需要做任何调整就能自动完成转换。

方法2:列表推导式(兼容低版本pandas)

如果你使用的pandas版本较老,没有str.removeprefix方法,可以用列表推导式实现完全相同的效果:

df.columns = [f'% {col.split("brand_", 1)[1].replace("_", " ")}' for col in df.columns]

提示:如果后续有部分列不符合这个命名规则,只需要在列表推导式里加简单的条件判断即可,灵活度比手动写映射高很多。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:33:24