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

使用Pandas Dataframe导出Excel时遇“文件非UTF-8编码”错误求助

解决Pandas导出DataFrame到Excel为空且UTF-8编码错误的问题

我来帮你排查这个问题,之前也遇到过类似的情况,咱们一步步来定位和解决:

  • 先确认你的DataFrame是否真的有数据
    别着急导出,先在代码里加两行验证:

    print(df.shape)  # 看行数和列数,要是(0, n)说明DataFrame是空的
    print(df.head()) # 打印前几行数据,确认内容存在
    

    如果这里显示DataFrame是空的,那问题根源是你创建DataFrame的步骤有问题,得先检查数据加载/构造的逻辑——比如列表转DataFrame时是不是格式不对,或者数据源本身为空。

  • 检查文件路径的编码问题
    错误提示里的路径编码问题,大概率是路径里包含非ASCII字符(比如中文、特殊符号)或者空格。试试把保存路径改成纯英文的绝对路径,比如:

    df.to_excel(r'C:/temp/result.xlsx', index=False)
    

    注意用原始字符串(加r前缀)避免转义字符的干扰。

  • 指定Excel写入引擎并确保依赖库已安装
    Pandas导出Excel需要依赖openpyxl或者xlsxwriter,试试明确指定引擎,同时先确认库已安装:
    先安装依赖(如果没装的话):

    pip install openpyxl xlsxwriter
    

    然后导出时指定引擎:

    df.to_excel('result.xlsx', engine='openpyxl', index=False)
    # 或者用xlsxwriter试试
    df.to_excel('result.xlsx', engine='xlsxwriter', index=False)
    
  • 先导出CSV验证数据有效性
    如果上面的方法都不行,先导出CSV文件看看数据是否能正常保存:

    df.to_csv('test.csv', encoding='utf-8-sig', index=False)
    

    如果CSV文件有数据,说明DataFrame本身没问题,问题出在Excel导出的环节;如果CSV也为空,那肯定是DataFrame的构造有问题,得回头检查数据来源。

  • 检查目录写入权限
    有时候你保存的目录(比如系统盘的Program Files文件夹)没有写入权限,导致文件创建后无法写入数据,变成空文件。试试把文件保存到桌面这类有写入权限的目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:36:20