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

Pandas多dataframe场景下通过列表循环做自动数据wrangling失败求助

问题核心原因

你当前的代码仅能匹配**列名为字符串'1'**的列,触发修改失败通常有两个原因:

  • 目标列的实际列名不是字符串'1'(比如是整数类型的1),字典匹配失效
  • 你要修改的是「索引位置为1的列」(即第二列),而非列名为'1'的列,现有逻辑完全不匹配
解决方案

方案1:按列位置修改(推荐,无需关心原列名)

如果确定要修改的是所有表的第二列(索引从0开始计数,位置1对应第二列),直接修改列名列表即可:

df_list = [week1, week2, week3, week4, week5, week6, week7, week8, week9, week10,
           week11, week12, week13, week14, week15, week16]

for df in df_list:
    col_names = df.columns.tolist()
    # 修改索引为1的位置的列名
    col_names[1] = 'State'
    df.columns = col_names

运行后原始的week1到week16变量会同步更新,因为列表存储的是DataFrame的引用,修改列名属性会直接作用到原对象上。

方案2:按原列名匹配修改

如果确认要按列名匹配修改,注意列名的类型要和字典的键完全一致:

for df in df_list:
    # 如果原列名是整数1,就用整数作为键
    df.rename(columns={1: 'State'}, inplace=True)

如果需要批量修改多个列,直接扩展字典即可:

for df in df_list:
    df.rename(columns={
        0: 'City',
        1: 'State',
        2: 'Sales'
    }, inplace=True)

内容的提问来源于stack exchange,提问作者Andrea P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 01:00:05