2016-04-06 17 views
5

Ben twitter verilerle UTF-8 dosya var ve bir Python veri çerçevesi içine okumaya çalışıyorum ama sadece yerine Unicode dizeleri bir 'nesne' türü alabilirsiniz:Pandalar ile UTF-8 dosyaları nasıl okunur?

# file 1459966468_324.csv 
#1459966468_324.csv: UTF-8 Unicode English text 
df = pd.read_csv('1459966468_324.csv', dtype={'text': unicode}) 
df.dtypes 
text    object 
Airline   object 
name    object 
retweet_count  float64 
sentiment   object 
tweet_location  object 
dtype: object 

doğru nedir UTF-8 verilerini Pandalar ile unicode'a okuma ve zorlama yolu?

df = pd.read_csv('1459966468_324.csv', encoding = 'utf8') 
df.apply(lambda x: pd.lib.infer_dtype(x.values)) 

Metin dosyası burada: https://raw.githubusercontent.com/l1x/nlp/master/1459966468_324.csv

+0

http://stackoverflow.com/a/20670901/2141635 –

+0

kullanarak 'df.apply (lambda x: pd.lib.infer_dtype (x. değerler)) 'Unicode ve karma olarak türleri gösterir, yukarıdaki linke bakarsanız neler olduğunu göreceksiniz –

cevap

7

diğer poster belirtildiği gibi

Bu sorunu çözmez deneyebilirsiniz:

df = pd.read_csv('1459966468_324.csv', encoding = 'utf8') 

Ancak, bu durum, dtypes'i yazdırırken sizi 'object' (nesnel) 'e bakmaya bırakabilir. onlar utf8 olan onaylamak için CSV okuduktan sonra bu satırı deneyin:

df.apply(lambda x: pd.lib.infer_dtype(x.values)) 

Örnek çıktı:

args   unicode 
date   datetime64 
host   unicode 
kwargs   unicode 
operation  unicode 
+0

Bunu çözmüyor :( – Istvan

+1

hala hepsini nesneler olarak gösteriyor? – Sam

+1

Çünkü "nan" değerleri var. Df.dropna (altküm = ["text"], inplace = True) 'i deneyin. Sağladığınız dosyada metin sütununu unicode'a dönüştürün. – ayhan

3

uygun parametresi encoding anahtar kelime kullanın:

df = pd.read_csv('1459966468_324.csv', encoding='utf8') 
+0

Yukarıdaki güncellemeye bakın. – Istvan

0

Pandalar depolar dizeleri object s. Python 3'te, tüm dize varsayılan olarak unicode cinsindendir. Yani, python 3'ü kullanırsanız, verileriniz zaten bir unicode (object türüne göre yanılmasın).

Python 2'niz varsa, df = pd.read_csv('your_file', encoding = 'utf8')'u kullanın. Daha sonra, örneğin pd.lib.infer_dtype(df.iloc[0,0]) deneyin (ilk sütun dizilerinden oluşur tahmin).