python - pandas读取中文的时候乱码 要如何解决?
巴扎黑
巴扎黑 2017-04-18 10:28:36
0
4
1283

下载了一份新浪微博的数据,但是原始数据是用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")
巴扎黑
巴扎黑

membalas semua(4)
伊谢尔伦

Beri saya kod dan data asal


Hanya tulis beberapa kod + data perwakilan, jangan buat beberapa gigabait data besar~

Siapa yang menonton?

大家讲道理

Saya berada dalam situasi yang sama seperti anda Saya telah mencuba banyak pengekodan tetapi ia masih tidak berfungsi Namun, jika data dikodkan dalam UTF8, beberapa data boleh ditukar dengan jayanya, jadi cara yang saya boleh fikirkan. masanya ialah menggunakan buka untuk membaca baris demi baris Jika ia muncul Jika penukaran pengekodan salah, ia akan dibuang Dengan cara ini, jumlah data sebenarnya agak besar

小葫芦

Anda juga boleh mencuba cp1252. Cara terbaik ialah menggunakan pakej chardet dahulu (https://pypi.python.org/pypi/...) untuk melihat pengekodan yang digunakan untuk fail.

Peter_Zhu

Tiada masalah selepas mencubanya, saya rasa ia adalah masalah dengan pengekodan persekitaran anda. Anda boleh mencuba kod berikut

#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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan