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

如何通过for循环为DataFrame所有列重命名为指定lag后缀格式?

DataFrame列名批量重命名为指定格式的正确方法

问题分析

你给出的两种写法都存在问题:

  • 第一种写法用了双重循环,会生成lag倍的列名(比如lag=2时会生成A_lag_1、B_lag_1…A_lag_2、B_lag_2…),不符合只给每个列名添加一次_lag_2的需求。
  • 第二种写法直接将整数lag和字符串拼接,会触发TypeError,因为Python不允许整数与字符串直接相加。

正确实现方式

方法1:使用f-string(推荐)

直接遍历列名,用f-string格式化生成新列名,f-string会自动处理整数到字符串的类型转换:

exog_pred.columns = [f'{col}_lag_{lag}' for col in exog_pred.columns]

方法2:字符串拼接(需手动转换lag类型)

先把lag转为字符串后再进行拼接:

exog_pred.columns = [col + "_lag_" + str(lag) for col in exog_pred.columns]

方法3:使用DataFrame的rename方法

如果需要更灵活的列处理逻辑,也可以用rename方法配合lambda函数:

exog_pred = exog_pred.rename(columns=lambda col: f'{col}_lag_{lag}')

以上三种方法都能实现将列名批量修改为列名_lag_指定值的格式,比如原列名A、B、C,lag=2时,会得到A_lag_2、B_lag_2、C_lag_2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:52:11