Jupyter Notebook读取CSV文件遇UnicodeDecodeError问题求助
解决Pandas读取CSV的UnicodeDecodeError问题
问题重现
执行代码:
dk = pd.read_csv('male_playersK.csv')
出现报错:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xeb in position 14: invalid continuation byte
尝试过以下代码仍无法解决:
dk = pd.read_csv(r'male_playersK.csv')
dk = pd.read_csv('male_playersK.csv', encoding='unicode_escape')
可行解决方法
尝试通用兼容编码
用latin-1编码读取,它能兼容所有字节,不会触发解码错误:dk = pd.read_csv('male_playersK.csv', encoding='latin-1')检测文件实际编码
用chardet库检测文件的真实编码,步骤如下:- 安装chardet(Jupyter中执行):
!pip install chardet - 检测编码:
import chardet with open('male_playersK.csv', 'rb') as f: detect_result = chardet.detect(f.read()) print(f"检测到的编码:{detect_result['encoding']}") - 使用检测到的编码读取文件,比如检测结果是
cp1252:dk = pd.read_csv('male_playersK.csv', encoding='cp1252')
- 安装chardet(Jupyter中执行):
跳过错误字节
如果只是少量字节存在解码问题,可通过errors参数忽略或替换错误:# 用�替换错误字节 dk = pd.read_csv('male_playersK.csv', errors='replace') # 直接忽略错误字节 dk = pd.read_csv('male_playersK.csv', errors='ignore')
内容的提问来源于stack exchange,提问作者Samuel Osaghae
相关产品推荐
相关产品推荐

