pandas read_csv编码怪异的角色

时间:2015-02-04 08:10:04

标签: python csv encoding utf-8 pandas

我尝试使用pandas以文本文件格式读取我的数据集。但是,某些字符编码不正确。我有 ???撇号。

我该怎么做才能正确编码我的文件?我试过了

  • encoding = "utf8"但我得到UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 2044: unexpected end of data

  • encoding = "latin1"但这给了我很多???

  • encoding = "ISO-8859-1" or "ISO-8859-2"但这也让我像没有编码一样......

当我在崇高中打开我的数据时,我得到了这个角色。

更新:但是当我使用loc访问该条目时,我得到的内容类似于\ u0102 \ u02d8 \ xe2 \ x82 \ u0179 \ xc2 \ u015,\ u0102 \ u02d8 \ xe2 \ x82 \ u0179 \ xe2 \ x84 \ u02d8

1 个答案:

答案 0 :(得分:1)

您可以determine the encoding使用chardet

$ pip install chardet

>>> import urllib
>>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'EUC-JP', 'confidence': 0.99}

基本用法还建议您如何使用它来推断大文件的编码,例如文件太大而无法读入内存 - 它会读取文件,直到它对编码有信心。


根据this answer,您应该尝试encoding="ISO-8859-2"

  

我的猜测是您的输入编码为ISO-8859-2,其中包含Ă为0xC3


注意:Sublime可能无法正确推断编码,因此您必须使用少量盐来获取它的输出,最好与您的供应商(无论您从何处获取文件)进行检查,实际编码是什么是...