2017-04-04 43 views
1

我想read_csv csv文件與西里爾字體與pandaspython熊貓read_cvs加載utf-8

import pandas 
data = pandas.read_csv('dataset.csv', delimiter='\|\|', engine='python', encoding='utf-8') 
print type(data.name[0]) 

<type 'str'> 

在這裏,我期待得到unicode

print type(u'hello') 

<type 'unicode'> 

我做錯了嗎?

+0

Python是鴨類型。你永遠不應該問什麼類型的對象。這就是說,你需要提供一些例子,你可以展示你的產品和你想要的產品。你的代碼顯示正確AFAIK – firelynx

+0

我不知道熊貓如何實現'read_csv'方法,但是如果它使用std.lib。 'csv'模塊,那麼解決這個問題的方法可能不是微不足道的,因爲Python 2的'csv'不支持解碼文件(實際上這很令人傷心)。現在再切換到Python 3的另一個原因! – lenz

回答

0

簡答:Unicode是未編碼文本。 UTF-8是編碼 unicode字符的一種方式。當大熊貓導入你的UTF-8編碼文本時,它將它轉換爲python str類型,即解碼文本。在Python 3中,str類型與unicode相同。

爲了更深入的瞭解,請參閱:

  1. UTF-8 vs Unicode
  2. Python str vs Unicode
+0

非常感謝您的澄清。 – com

+1

OP顯然使用Python 2(請參閱打印語句)。在Python 2中,解碼*(我認爲這就是你的意思是「未編碼」)文本的類型是'unicode'。所以,顯然,熊貓沒有**正確解碼輸入文本。 – lenz

+0

公平點......我不知道這是如何工作在蟒蛇2.任何想法@lenz? – oscarbranson