使用Pandas读取CSV文件时遭遇UnicodeDecodeError报错求助
读取CSV文件时的Unicode解码错误问题
我用以下Python代码读取CSV文件:
import pandas as pd df = pd.read_csv(r'C:\Users\User-010\Downloads\company_sales_data.csv')
运行后出现错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 14: invalid continuation byte
我试过iso编码及其他编码方式,还是无法打开文件进行数据分析,相关截图显示上述错误提示。
解决方法
1. 自动检测文件编码
用chardet库自动识别文件编码,步骤如下:
- 安装库:
pip install chardet
- 检测编码:
import chardet with open(r'C:\Users\User-010\Downloads\company_sales_data.csv', 'rb') as f: result = chardet.detect(f.read()) print(f"检测到的编码:{result['encoding']}")
- 用检测出的编码读取文件:
df = pd.read_csv(r'C:\Users\User-010\Downloads\company_sales_data.csv', encoding=result['encoding'])
2. 尝试常见编码
如果自动检测失败,试试这些常用编码:
gbk/gb2312:中文Windows系统默认编码cp1252:Windows西欧语言编码utf-16:Unicode双字节编码
示例:
df = pd.read_csv(r'C:\Users\User-010\Downloads\company_sales_data.csv', encoding='gbk')
3. 忽略解码错误(应急用)
若编码完全无法匹配,且可接受少量数据丢失,可跳过错误字符:
df = pd.read_csv(r'C:\Users\User-010\Downloads\company_sales_data.csv', errors='ignore')
4. 转存为UTF-8格式
用Notepad++等编辑器打开CSV文件,选择「编码」→「转为UTF-8编码」后保存,再用原代码读取即可。
内容的提问来源于stack exchange,提问作者devita ghanekar
相关产品推荐
相关产品推荐

