首頁  >  問答  >  主體

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 天前1211

全部回覆(4)我來回復

  • 伊谢尔伦

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

    給代碼和原始資料


    你寫點能程式碼+有代表性的資料 即可,別搞幾G的大數據阿~

    誰看啊?

    回覆
    0
  • 大家讲道理

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

    跟你一樣的情況,試了很多編碼還是沒有用,但是看資料用UTF8編碼的話,有的資料能轉換成功,所以我暫時能想到的辦法就是用open去按行讀取,如果出現編碼轉換錯誤就丟掉,這樣下來資料量其實也不少

    回覆
    0
  • 高洛峰

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

    你也可以試試用cp1252。最好的方法是先透過chardet套件(https://pypi.python.org/pypi/...)看檔案具體上用什麼encoding。

    回覆
    0
  • 天蓬老师

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

    試過了沒有問題呀,我猜想應該是你環境編碼問題吧,可以試試看以下程式碼

    #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

    回覆
    0
  • 取消回覆