Jupyter Notebook导入CSV遇UnicodeDecodeError错误求解决
解决Pandas读取CSV时的UnicodeDecodeError问题
这个问题我之前也碰到过,本质是编码不匹配导致的——错误里的0xae字节是注册商标符号®的Windows-1252编码值,说明你的CSV文件大概率不是用UTF-8编码保存的,而是Windows系统常用的编码(比如Windows-1252、GBK等)。另外你提到的unicode=16参数是错误用法,Pandas里没有这个参数,应该是encoding='utf-16',但显然你的文件不是UTF-16编码,所以没效果。
下面给你几个靠谱的解决思路:
直接尝试Windows常用编码:
先优先试试windows-1252编码,这是触发这个错误最常见的原因,代码如下:df = pd.read_csv('Superstore-Sales.csv', encoding='windows-1252')如果不行,再依次尝试
gbk、cp1251这类Windows相关编码。自动检测文件编码:
如果你不确定文件到底用的什么编码,可以用chardet库来精准检测:- 先安装chardet:
pip install chardet - 运行检测代码:
import chardet with open('Superstore-Sales.csv', 'rb') as f: detection_result = chardet.detect(f.read()) print(f"检测到的编码:{detection_result['encoding']}")
把检测到的编码填到
pd.read_csv的encoding参数里即可。- 先安装chardet:
应急方案:忽略解码错误(不推荐):
如果你只是想先把数据读进来,暂时不想纠结编码细节,可以用errors='ignore'参数跳过错误字符,但这样会丢失部分数据,只建议应急使用:df = pd.read_csv('Superstore-Sales.csv', encoding='utf-8', errors='ignore')
内容的提问来源于stack exchange,提问作者Josh Bennett
相关产品推荐
相关产品推荐

