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

如何重命名pandas dataframe的第一列或指定序号的列?

重命名Pandas DataFrame指定位置列的实现方案

重命名第一列的简洁方法

你当前使用的rename方法已经是非常稳妥的通用实现,不会改动其他列名称、默认返回新对象不会修改原数据。如果需要更简洁的写法,可以根据是否需要保留原DataFrame选择对应方案:

  • 原位修改(直接改动原DataFrame,性能最优)
    直接操作列名的底层数组即可,写法最简短:
    df.columns.values[0] = 'Column1'
    
    注意不要直接写df.columns[0] = 'Column1',Pandas的Index对象默认不可变,直接赋值会抛出类型错误
  • 非原位修改(不改动原DataFrame,返回新对象)
    可以用set_axis方法简化写法,比rename不需要构造字典:
    df = df.set_axis(['Column1', *df.columns[1:]], axis=1)
    

重命名任意指定序号列的通用方法

列序号默认从0开始计数,假设你要修改索引为n的列名称为NewCol,可以用以下方案:

  • 原位修改方案:
    直接修改对应位置的列名数组即可,适配包括重名列在内的所有场景:
    # n替换为你要修改的列的索引,比如修改第3列就填2
    df.columns.values[n] = 'NewCol'
    
  • 非原位修改方案:
    1. 通用rename写法,和你当前的实现逻辑一致,仅修改对应位置的列,不影响其他列:
    df = df.rename(columns={df.columns[n]: 'NewCol'})
    
    1. 列名列表修改后重新赋值,适合需要同时修改多列位置名称的场景:
    cols = df.columns.to_list()
    cols[n] = 'NewCol'
    df = df.set_axis(cols, axis=1)
    

如果你的DataFrame存在重名列,优先选择按位置修改列名数组/列表的方案,不会误改其他重名列

内容的提问来源于stack exchange,提问作者JALO - JusAnotherLivngOrganism

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:18:02