使用read_csv()加载sample2.csv时出现UnicodeDecodeError报错求助
解决pandas read_csv加载csv时的UnicodeDecodeError问题
这个错误是因为sample2.csv的文件编码和pandas默认使用的编码(通常是utf-8)不匹配导致的,sample1.csv刚好是utf-8编码所以能正常加载。给你几个可行的解决方法:
直接尝试常见编码加载
很多非utf-8的csv(尤其是Windows下生成的中文文件)常用gbk、gb2312或cp1252编码,你可以挨个试试:import pandas as pd # 尝试gbk编码 df = pd.read_csv('sample2.csv', encoding='gbk') # 不行就试cp1252 df = pd.read_csv('sample2.csv', encoding='cp1252')检测文件真实编码
如果不知道具体编码,用chardet库自动检测:- 先安装chardet:
pip install chardet - 执行检测代码:
import chardet with open('sample2.csv', 'rb') as f: detect_result = chardet.detect(f.read()) # 打印检测出的编码 print(detect_result['encoding'])
拿到编码后,把它传入read_csv的encoding参数即可。
- 先安装chardet:
应急方案:忽略错误字符
如果你不需要保留所有特殊字符,可以用errors参数跳过或替换无法解码的字符(不推荐长期使用,可能丢失数据):df = pd.read_csv('sample2.csv', encoding='utf-8', errors='ignore') # 或者替换为? df = pd.read_csv('sample2.csv', encoding='utf-8', errors='replace')
内容的提问来源于stack exchange,提问作者Abdullah Syed
相关产品推荐
相关产品推荐

