问题描述:
在使用read_csv时报错:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 9451: invalid continuation byte
或者:
UnicodeDecodeError: 'gb2312' codec can't decode byte 0x88 in position 68296: illegal multibyte sequence
问题原因:
因为csv不是按照utf-8格式写入的,可能是其他格式,而pandas默认是使用utf8来进行解码的,所以可以使用 gbk 格式来进行读取:
df = pd.read_csv('a.csv', encoding='gbk')
拓展说明:
可以通过如下方式获取文件的编码格式:
import chardet
def find_encoding(fname):
r_file = open(fname, 'rb').read()
result = chardet.detect(r_file)
charenc = result['encoding']
return charenc