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

Linux与macOS下Pandas导入UTF-8(BOM)CSV的差异问题

问题原因分析

这个差异主要源于pandas在不同系统上的编码检测逻辑与默认编码处理的区别,具体细节如下:

  • 当调用pandas.read_csv()未显式指定encoding参数时,pandas会先尝试通过字符编码检测库(如chardet/cchardet)识别文件编码,若检测失败则 fallback 到系统默认编码。
  • 在macOS系统中,pandas的编码检测逻辑能够成功识别出UTF-8 BOM的存在,自动切换为utf-8-sig编码读取文件——该编码会自动剔除UTF-8文件开头的BOM字节,因此首列列名显示正常。
  • 在Linux系统中,编码检测逻辑未能识别出UTF-8 BOM,最终使用了系统默认的utf-8编码读取。而Python标准库中的utf-8编码解码器不会处理UTF-8 BOM,导致文件开头的\xEF\xBB\xBF字节被直接当作首列列名的一部分,从而出现异常显示。

额外补充:你可以通过显式指定encoding='utf-8-sig'来统一两个系统上的读取行为,避免这种差异:

import pandas as pd
df = pd.read_csv('your_file.csv', encoding='utf-8-sig')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:22:15