python - pandas讀取中文的時候亂碼 要如何解決?
問題描述
下載了一份新浪微博的數(shù)據(jù),但是原始數(shù)據(jù)是用csv的,在mac上沒辦法直接打開,讀取的時候,也會錯誤,會出現(xiàn)
UnicodeDecodeError: ’utf-8’ codec can’t decode byte 0x84 in position 36: invalid start byte
然后自己google,發(fā)現(xiàn)read_csv(’file’, encoding = 'ISO-8859-1') 這樣的時候讀取不會有錯
但是讀取進來發(fā)現(xiàn)是這樣的:
中文全部
然后測試了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
有大神遇到類似的情況嗎?
有大神說要數(shù)據(jù) 因為比較大,熱心的人可以看看 不過我覺得挺有用的下面是微博的數(shù)據(jù)鏈接:http://pan.baidu.com/s/1jHCOwCI 密碼:x58f
補充一下代碼吧~上面隨意一個文件下載下來(是csv格式的)然后用pandas打開就會出錯~
import pandasdf = pandas.read_csv('week1.csv')
問題解答
回答1:給代碼和原數(shù)據(jù)
你寫點能代碼+有代表性的數(shù)據(jù) 即可,別搞幾G的大數(shù)據(jù)阿~
誰看啊?
回答2:跟你一樣的情況,試了很多編碼仍然沒有用,但是看數(shù)據(jù)用UTF8編碼的話,有的數(shù)據(jù)能轉(zhuǎn)換成功,所以我暫時能想到的辦法就是用open去按行讀取,如果出現(xiàn)編碼轉(zhuǎn)換錯誤就丟掉,這樣下來數(shù)據(jù)量其實也不少
回答3:你也可以試試用cp1252。最好的方法是先通過chardet包(https://pypi.python.org/pypi/...)看文件具體上用什么encoding。
回答4:試過了沒有問題呀,我猜想應(yīng)該是你環(huán)境編碼問題吧,可以嘗試一下以下代碼
#coding=utf-8import pandas as pdimport sysreload(sys)sys.setdefaultencoding('utf-8')df = pd.read_csv(’week1.csv’, encoding=’utf-8’, nrows=10)print df
相關(guān)文章:
1. 老師 我是一個沒有學(xué)過php語言的準(zhǔn)畢業(yè)生 我希望您能幫我一下2. mysql如何配置遠(yuǎn)程php外網(wǎng)鏈接數(shù)據(jù)庫3. mysql - eclispe無法打開數(shù)據(jù)庫連接4. mysql 5萬張表 導(dǎo)出成sql 不要內(nèi)容,只要結(jié)構(gòu),非常慢。如何解決啊?5. 數(shù)據(jù)庫 - mysql中有沒查看數(shù)據(jù)大小的函數(shù)??6. 導(dǎo)入數(shù)據(jù)庫不成功7. PHP單例模式8. mysql - 關(guān)于數(shù)據(jù)緩存策略方面的疑惑9. mysql如何判斷數(shù)據(jù)不存在則插入呢?10. mysql無法刪除字段(錯誤1091),但是對該字段設(shè)置主鍵后就可刪除,為什么?
