英文字母,数字,符号都用特定的二进制编码方式计算机才能识别。“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xca in position 0: invalid continuation byte”,这句话翻译过来就是“UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0xca:无效的连续字节”。说明啥呢?简单简单一句话就是你的文本里带的字符有utf-8翻译不了的,utf-8中没有定义。

data = pd.read_csv(datafile,encoding = 'utf-8')在这里插入代码片
 File "pandas\_libs\parsers.pyx", line 529, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas\_libs\parsers.pyx", line 720, in pandas._libs.parsers.TextReader._get_header
  File "pandas\_libs\parsers.pyx", line 916, in pandas._libs.parsers.TextReader._tokenize_rows
  File "pandas\_libs\parsers.pyx", line 2063, in pandas._libs.parsers.raise_parser_error
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 0: invalid continuation byte

不加encoding默认编码方式采用utf-8,我的问题是因为cvs文件的表头带中文汉字,所以报错,我们国家汉字采用的编码方式是"gb2312",一般都是表头带汉字引起的,更改为如下代码就好了。

data = pd.read_csv(datafile,encoding = 'gb2312')

然后报错就没啦,就这么解决了,你说简单不简单??小伙子!
还有一点我很好奇UTF-8不是可以编码汉字么,为啥还报错,有知道的评论区说一下哈

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐