Maison  >  Questions et réponses  >  le corps du texte

python - pandas读取中文的时候乱码 要如何解决?

下载了一份新浪微博的数据,但是原始数据是用csv的,在mac上没办法直接打开,读取的时候,也会错误,会出现

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x84 in position 36: invalid start byte

然后自己google,发现
read_csv('file', encoding = "ISO-8859-1") 这样的时候读取不会有错

但是读取进来发现是这样的:

中文全部

然后测试了
read_csv('file', encoding = "gbk")
read_csv('file', encoding = "utf8")
read_csv('file', encoding = "gb18030")
总之就是各种不行~基本的情况如下:

UnicodeDecodeError: 'gb18030' codec can't decode byte 0xaf in position 12: incomplete multibyte sequence

有大神遇到类似的情况吗?

有大神说要数据 因为比较大,热心的人可以看看 不过我觉得挺有用的
下面是微博的数据
链接:http://pan.baidu.com/s/1jHCOwCI 密码:x58f

补充一下代码吧~
上面随意一个文件下载下来(是csv格式的)然后用pandas打开就会出错~

import pandas
df = pandas.read_csv("week1.csv")
巴扎黑巴扎黑2741 Il y a quelques jours1206

répondre à tous(4)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:30:36

    Donnez-moi le code et les données originales


    Écrivez simplement du code + des données représentatives, ne créez pas quelques gigaoctets de big data~

    Qui regarde ?

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:30:36

    Je suis dans la même situation que vous. J'ai essayé de nombreux encodages mais cela ne fonctionne toujours pas. Cependant, si les données sont encodées en UTF8, certaines données peuvent être converties avec succès, donc comme je peux le penser. le moment est d'utiliser open pour lire ligne par ligne. S'il apparaît. Si la conversion d'encodage est incorrecte, elle sera supprimée de cette façon, la quantité de données est en fait assez importante

    .

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 10:30:36

    Vous pouvez également essayer le cp1252. La meilleure façon est d'utiliser d'abord le package chardet (https://pypi.python.org/pypi/...) pour voir quel encodage est utilisé pour le fichier.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:30:36

    Il n'y a aucun problème après l'avoir essayé. Je suppose que c'est un problème avec l'encodage de votre environnement. Vous pouvez essayer le code suivant

    .
    #coding=utf-8
    
    import pandas as pd
    import sys
    
    reload(sys)
    sys.setdefaultencoding("utf-8")
    
    df = pd.read_csv('week1.csv', encoding='utf-8', nrows=10)
    
    print df

    répondre
    0
  • Annulerrépondre