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

Polars read_excel读取指定列时错误添加列名后缀问题咨询

问题分析与解决

这不是操作失误,是Polars v1.12.0中read_excel的表头去重机制导致的设计行为,而非Bug。

原因

Polars读取Excel时,会先扫描整个工作表的所有列表头进行全局去重,而不是仅针对你指定的columns范围。哪怕你选的列表头本身唯一,但只要该表头在你选中区域之前的列里出现过,Polars就会基于全局的重复次数给列名加后缀。比如你提到的那个被加_3的列头,就是因为它在前面已经出现过两次,当前选中的是第三次出现的同名表头。

解决办法

  • 先读全表再筛选列:如果数据量不大,可以先读取整个工作表,再筛选需要的列,这样能保留原始表头:
    df = pl.read_excel("test.xlsx", sheet_name="test", has_header=True)
    # 按列范围筛选(AE到AS对应Excel列的30到49索引)
    df = df.select(pl.col("AE":"AS"))
    
  • 手动指定列名:如果你明确知道目标列的正确表头,可以用new_columns参数直接覆盖自动生成的列名:
    # 替换成你实际的19个列名
    target_columns = ["列A", "列B", "列C", ..., "列S"]
    df = pl.read_excel(
        "test.xlsx",
        sheet_name="test",
        has_header=True,
        columns=list(range(30, 49)),
        new_columns=target_columns
    )
    
  • 升级Polars版本:后续版本可能优化了这个逻辑,只针对选中的列进行表头去重,你可以尝试升级到最新版Polars再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 09:03:15