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

如何使用For循环在Python中修改DataFrame列名?

关于DataFrame列名重命名代码的问题分析与优化

首先咱们来拆解下你代码里存在的几个小问题:

  • 拼写疏漏:变量名datafram少了个字母'e',应该是dataframe,这个小错误会直接导致运行报错。
  • 字典遍历逻辑错误:renamed_column_name.keys()[i]写法不对——Python 3里字典的keys()返回的是视图对象,不支持索引访问,而且i本身就是字典的键,完全没必要多此一举去索引取键。
  • 低效的重命名方式:你循环调用rename逐个修改列名,其实Pandas的rename方法支持直接传入完整的列名字典,一次就能完成所有重命名,效率和简洁度都更高。

修正后的可运行版本

def renaming_columns(headers):
    rename_dict = {}
    for col in headers:
        print(col)  # 如果是在Jupyter环境,用display(col)也没问题,print更适配普通脚本
        new_name = input(f"Please enter relevant name for '{col}': ")
        rename_dict[col] = new_name
    return rename_dict

# 获取列名映射字典
renamed_column_map = renaming_columns(headers)
# 一次完成所有列名重命名
dataframe = dataframe.rename(columns=renamed_column_map)

更简洁的优化实现

可以用字典推导式简化函数内的逻辑,让代码更紧凑:

def renaming_columns(headers):
    return {col: input(f"Please enter relevant name for '{col}': ") for col in headers}

# 使用方式不变
renamed_column_map = renaming_columns(headers)
dataframe = dataframe.rename(columns=renamed_column_map)

小提示:如果是在Jupyter Notebook环境中,display(col)能正常工作,但如果是普通Python脚本,print(col)的兼容性会更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:52:31