You need to enable JavaScript to run this app. Pandas导出DataFrame到CSV时latin-1编码报错该如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Pandas导出DataFrame到CSV时latin-1编码报错该如何解决?

Pandas导出CSV报Latin-1编码错误的解决方法

报错原因

你触发的UnicodeEncodeError是因为数据中存在latin-1编码不支持的Unicode字符(本次报错的是不带点的小写土耳其语i\u0131),latin-1编码仅支持序号在0-255范围内的字符,超出范围的字符无法被编码。

可选解决方法

方案1:更换兼容全字符集的编码(优先推荐,不会丢失数据)

把编码参数替换为支持所有Unicode字符的utf-8系列编码即可:

  • 常规场景使用utf-8编码:
df.to_csv('df.csv', sep=';', encoding='utf-8', decimal=',')
  • 如果导出的CSV需要在Windows系统用Excel打开,建议用带BOM头的utf-8-sig编码,避免Excel识别乱码:
df.to_csv('df.csv', sep=';', encoding='utf-8-sig', decimal=',')

方案2:强制保留latin-1编码(仅适用于下游系统要求必须用latin-1的场景)

可以通过errors参数指定异常处理规则,避免程序报错:

  • 直接忽略所有无法被latin-1编码的字符:
df.to_csv('df.csv', sep=';', encoding='latin-1', decimal=',', errors='ignore')
  • 用?替换所有无法被latin-1编码的字符:
df.to_csv('df.csv', sep=';', encoding='latin-1', decimal=',', errors='replace')

注意:该方案会丢失或修改无法编码的字符内容,非必要不推荐使用。


内容的提问来源于stack exchange,提问作者Economist Learning Python

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:30:02