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

如何用字母序列填充Pandas DataFrame列名?pd.read_excel读取列名遇阻

解决你的两个Pandas问题:生成字母列名+读取Excel表头

没问题,这两个需求都很常见,我一步步给你讲清楚:

一、根据DataFrame列数生成Excel风格的字母列名

Excel的列名是一种特殊的26进制(没有0,A对应1,Z对应26,AA对应27),我们可以写一个小函数来实现数字到字母列名的转换,然后批量生成对应数量的列名。

步骤1:写一个数字转Excel列名的辅助函数

def num_to_excel_col(n):
    col_name = ''
    while n > 0:
        # 减1是为了把1-26映射到0-25,对应A-Z的ASCII码
        n, remainder = divmod(n - 1, 26)
        col_name = chr(65 + remainder) + col_name
    return col_name

步骤2:给DataFrame批量赋值列名

假设你已经有了一个DataFrame(比如叫df),直接生成对应数量的列名列表替换原列名就行:

# 获取当前DataFrame的列数
total_cols = len(df.columns)
# 生成从A开始的字母列名列表(1对应A,50对应AX)
new_col_names = [num_to_excel_col(i + 1) for i in range(total_cols)]
# 赋值给DataFrame的列名
df.columns = new_col_names

测试一下,当列数是50时,最后一个列名就是AX,完全符合你的要求~

二、用pd.read_excel读取Excel时保留原文件的列名

其实Pandas默认就是这么做的哦!可能你之前不小心设置了错误的参数,我给你理清楚几种情况:

  • 默认情况(直接用Excel第一行当表头):
    如果你Excel文件的第一行就是你想要的列名,直接调用read_excel就行,不需要额外参数:

    import pandas as pd
    df = pd.read_excel('你的文件路径.xlsx')
    

    这样生成的DataFrame会自动把Excel的第一行作为表头,下面的行作为数据。

  • 表头不在第一行的情况:
    如果你的表头在Excel的第N行(比如第二行,对应Python的索引是1,因为从0开始计数),就用header参数指定行索引:

    # 用Excel的第二行(索引1)作为表头
    df = pd.read_excel('你的文件路径.xlsx', header=1)
    
  • 如果Excel没有表头,需要自己设置:
    这种情况才需要用header=None,然后通过names参数自定义列名:

    df = pd.read_excel('你的文件路径.xlsx', header=None, names=['列1', '列2', '列3'])
    

如果之前你没读到原列名,大概率是误设了header=None,去掉这个参数就可以啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:27:08