Mac环境下使用Spyder导入CSV文件遇UnicodeDecodeError问题求助
解决CSV导入时的UnicodeDecodeError问题
这个错误的核心原因很明确:你的CSV文件不是以UTF-8编码保存的,而pd.read_csv()默认用UTF-8解码,所以遇到了它无法识别的字节(0xb0,通常对应类似“°”这类符号,常见于GBK/GB2312等编码里),导致解码失败。
给你几个实用的解决办法:
直接指定常见编码尝试
先试试中文环境里最常用的gbk编码,修改代码如下:import pandas as pd one = pd.read_csv("~/Documents/2017Data/2017DATA.csv", encoding='gbk')如果还是报错,再试试
gb2312或者cp1252(Windows常用的西文编码,有时候Mac上也会碰到这类文件)。检测文件的真实编码
要是不确定文件到底用的什么编码,可以用chardet库来自动检测:
首先在终端安装chardet:pip install chardet然后运行这段代码获取编码:
import chardet # 注意用rb模式读取二进制内容 with open("~/Documents/2017Data/2017DATA.csv", 'rb') as f: detect_result = chardet.detect(f.read()) print("文件编码是:", detect_result['encoding'])把输出的编码值填到
read_csv的encoding参数里就可以了。跳过错误字节(不推荐)
如果你暂时不想纠结编码,只是想先把文件读进来,可以用errors='ignore'参数跳过无法解码的字节,但这样会丢失部分数据,只适合临时查看:one = pd.read_csv("~/Documents/2017Data/2017DATA.csv", errors='ignore')
内容的提问来源于stack exchange,提问作者bziggy
相关产品推荐
相关产品推荐

