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

使用pd.read_excel(engine='pyxlsb')读取.xlsb文件时字符串列显示为空

解决xlsb文件读取时字符串表头/列变为NaN的问题

以下是几个可行的排查和解决方法:

  • 检查单元格格式
    打开原xlsb文件,确认表头和字符串类型的单元格是否设置为文本/常规格式。如果单元格是自定义格式、隐藏格式或特殊格式,pyxlsb/calamine引擎可能无法正确识别,改成常规格式后重新保存再尝试读取。

  • 显式指定表头与数据行
    若文件存在隐藏行、合并单元格,或表头不在默认的第一行,手动指定表头位置和数据起始行:

    df = pd.read_excel(file, engine='pyxlsb', header=0, skiprows=0)
    

    比如表头实际在第2行,就将header设为1,根据实际情况调整参数。

  • 转存文件后换引擎读取
    把xlsb文件手动另存为xlsx格式,再用openpyxl引擎读取,绕开xlsb的兼容性问题:

    df = pd.read_excel('转存后的文件.xlsx', engine='openpyxl')
    

    该方法适合文件体积不大的场景。

  • 直接使用calamine原生方法
    跳过pandas的封装,直接调用calamine的原生接口读取:

    import calamine
    workbook = calamine.load_workbook(file)
    df = workbook.get_sheet_by_name('Sheet1').to_pandas()
    

    这种方式能避免pandas对calamine的参数限制,可能解决字符串解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:05:07