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

使用Python Pandas读取多表头.xlsx文件时,部分'<'被转为'<.1'的问题

多层表头重复列名自动重命名问题解析与解决

问题原因

当你用pd.read_excel(file, header=[0,1])读取双层表头的Excel文件时,Pandas会确保MultiIndex的每一组列标签都是唯一的。如果某一层级存在重复的列名(比如你案例中第二层的两个<),Pandas会自动为后续重复的列名添加.数字后缀(比如.1),以此避免索引冲突。

解决方法

1. 读取时禁用自动重命名

通过设置mangle_dupe_cols=False参数,让Pandas保留原始重复列名,但注意这种情况下MultiIndex会存在重复项,后续直接通过列名索引可能返回多列,需谨慎使用:

df = pd.read_excel(file, header=[0,1], mangle_dupe_cols=False)

2. 读取后手动修正列名

读取完成后,遍历MultiIndex列名,将自动添加后缀的<.1改回<:

# 生成新的列名元组列表
new_columns = []
for level1, level2 in df.columns:
    if level2 == '<.1':
        new_columns.append((level1, '<'))
    else:
        new_columns.append((level1, level2))

# 更新DataFrame的列名
df.columns = pd.MultiIndex.from_tuples(new_columns)

3. 提前修改Excel文件(推荐)

如果有权限修改源Excel文件,可以给重复的表头添加区分标识,比如将两个<分别改为< AW和< OW,这样读取时就不会触发自动重命名逻辑,列名也更具可读性。

内容的提问来源于stack exchange,提问作者Mitchell van Zuylen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:21:02