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

遍历DataFrame列表,为每个DataFrame第一列添加后缀的实现求助

解决方法

你可以把每个DataFrame和要添加的后缀配对后再循环,这样就能精准给第一列加上对应后缀,同时保留你已经实现的列名空格替换逻辑。

修改后的完整代码如下:

import pandas as pd

px_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
        'A df': [58.63, 21.25, 19.17, 18.8],
        'B df': [35,105,27,98]}

SC_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
        'A df': [20.50, 6, 82, 74.6],
        'B df': [74,62,8,99]}

SMA_data = {'Date': ['8/11/18', '8/12/18', '8/13/18', '8/14/18'],
        'A df': [2, 95.3, 39, 68.27],
        'B df': [58,37,74,11]}

px = pd.DataFrame(px_data)
SC = pd.DataFrame(SC_data)
SMA = pd.DataFrame(SMA_data)

# 将DataFrame与对应的后缀配对,方便循环时调用
dfs_with_suffix = [(px, '_px'), (SC, '_SC'), (SMA, '_SMA')]

for df, suffix in dfs_with_suffix:
    # 替换列名中的空格为下划线
    df.columns = df.columns.str.replace(' ', '_')
    # 获取第一列的原列名
    first_col_name = df.columns[0]
    # 给第一列重命名并添加后缀
    df.rename(columns={first_col_name: f"{first_col_name}{suffix}"}, inplace=True)
    # 打印验证结果
    print(df.columns[0])

关键细节说明

  • 用配对的方式绑定DataFrame和后缀,比通过索引循环更直观,也避免索引出错的问题。
  • 使用rename方法修改列名,加上inplace=True会直接修改原DataFrame;如果不想改动原数据,可以去掉这个参数,把结果赋值给新变量。
  • 如果要给所有DataFrame的第一列加同一个后缀(比如_date),直接把循环里的后缀换成固定值即可,比如df.rename(columns={df.columns[0]: f"{df.columns[0]}_date"}, inplace=True)。

运行代码后会输出:

Date_px
Date_SC
Date_SMA

每个DataFrame的第一列都成功添加了对应后缀,同时列名的空格也完成了替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:33:28