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

Python批量重命名DataFrame列:按new_var序号规则调整var列名

批量重命名DataFrame列名(按指定规则)

问题描述

你的DataFrame当前列名示例:

day var1 new_var1 var2 new_var2 new_var3 var3 new_var4 var4 new_var5 var5 new_var6 new_var7 ...

需要修改为:

day var1 new_var1 var2 new_var2 new_var3 var4 new_var4 var5 new_var5 var6 new_var6 new_var7 ...

核心规则:所有varX列必须紧跟在对应的new_varX列之后,且var的序号要比它前面的new_var序号大1。由于列数超200,必须批量处理。

解决方案(Pandas实现)

直接用Python遍历列名,自动生成重命名映射,代码如下:

import pandas as pd

# 替换成你的实际DataFrame
# df = pd.read_csv("your_data_source.csv")

# 模拟示例列名(实际使用时直接用df.columns即可)
cols = ["day", "var1", "new_var1", "var2", "new_var2", "new_var3", "var3", "new_var4", "var4", "new_var5", "var5", "new_var6", "new_var7"]
df = pd.DataFrame(columns=cols)

# 构建重命名字典
rename_map = {}
last_new_var_idx = None

for col in df.columns:
    if col == "day":
        continue  # day列保留原名称
    elif col.startswith("new_var"):
        # 提取new_var后的数字序号
        last_new_var_idx = int(col.split("_")[-1])
    elif col.startswith("var"):
        if last_new_var_idx is not None:
            # 生成新的var列名:序号 = 前一个new_var序号 + 1
            new_col_name = f"var{last_new_var_idx + 1}"
            rename_map[col] = new_col_name

# 执行批量重命名(inplace=True直接修改原DataFrame)
df.rename(columns=rename_map, inplace=True)

# 查看修改后的列名
print(df.columns.tolist())

代码说明

  1. 遍历每一列,遇到new_varX时记录下X的数值
  2. 遇到var开头的列时,自动用X+1作为新序号生成列名
  3. 最后用rename()批量替换,不管多少列都能快速处理,完全无需手动编写映射关系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:10:48