如何使用pandas导入CSV文件避免UnicodeDecodeError错误?
解决CSV导入时的UnicodeDecodeError问题
问题描述
执行以下代码导入CSV文件时:
df = pd.read_csv('movies_metadata.csv')
出现如下解码错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 2040: invalid continuation byte
解决方法
1. 指定兼容的编码格式
CSV文件可能并非UTF-8编码,尝试以下常见备选编码:
- latin-1:兼容所有字节,不会抛出解码错误,是最稳妥的临时方案:
df = pd.read_csv('movies_metadata.csv', encoding='latin-1') - cp1252:Windows系统下常用的文本编码格式:
df = pd.read_csv('movies_metadata.csv', encoding='cp1252')
2. 自动检测文件真实编码
使用chardet库检测文件的实际编码:
- 先安装chardet工具:
pip install chardet - 检测编码并导入文件:
import chardet # 读取文件二进制内容进行编码检测 with open('movies_metadata.csv', 'rb') as file: encoding_result = chardet.detect(file.read()) # 使用检测出的编码导入CSV df = pd.read_csv('movies_metadata.csv', encoding=encoding_result['encoding'])
3. 忽略解码错误(仅应急使用)
若允许丢失少量字符,可临时设置忽略解码错误,但不推荐长期使用(会丢失数据):
df = pd.read_csv('movies_metadata.csv', encoding_errors='ignore')
内容的提问来源于stack exchange,提问作者Thierry Gilgen
相关产品推荐
相关产品推荐

