使用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
相关产品推荐
相关产品推荐

