使用Pandas导入含中文字符的CSV文件时出现解码错误,求解决方法
解决Pandas导入含中文字符CSV的GBK解码错误
遇到这种GBK解码失败的问题,试试下面几种实用方法:
换用更广兼容的中文编码
GB18030是GBK的超集,支持更多生僻字符,把代码里的编码改成gb18030大概率能解决:import pandas as pd df = pd.read_csv(r'path/filename.csv', encoding='gb18030') print(df)也可以试试
utf-8(如果文件是UTF-8编码但带BOM,用utf-8-sig):df = pd.read_csv(r'path/filename.csv', encoding='utf-8-sig')跳过错误字符(仅限非关键字符场景)
如果不想纠结编码,只是想先把文件读进来,可以给read_csv加errors参数忽略或替换错误字节:# 直接忽略错误字符 df = pd.read_csv(r'path/filename.csv', encoding='gbk', errors='ignore') # 用?替换无法解码的字符 df = pd.read_csv(r'path/filename.csv', encoding='gbk', errors='replace')注意:这种方法会丢失或替换出错的字符,适合对数据完整性要求不高的场景。
检测文件实际编码
可以用chardet库自动检测文件编码,步骤如下:- 先安装chardet:
pip install chardet - 检测编码:
import chardet with open(r'path/filename.csv', 'rb') as f: result = chardet.detect(f.read()) print(result['encoding'])
拿到检测出的编码后,替换到
read_csv的encoding参数里即可。- 先安装chardet:
内容的提问来源于stack exchange,提问作者New
相关产品推荐
相关产品推荐

