2017-04-04 6 views
1

私はread_csvにキリル文字を含むCSVファイルをpandasとしようとしています。ここでpython pandas read_cvs load 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

pandasが 'read_csv'メソッドをどのように実装しているのかわかりませんが、std.libを使用しています。 Python 2の 'csv'はファイルの解読をサポートしていないので(おそらく実際には悲しいです)、これに対する解決策は簡単ではありません。今やPython 3に切り替えるもう一つの理由! – lenz

答えて

0

短い答え:Unicodeはで、コード化されていませんテキスト。 UTF-8はのコードユニコード文字の方法です。 pandasがあなたのutf-8でエンコードされたテキストをインポートすると、それはとデコレートされたタイプstrのpythonに変換されます。 Python 3では、strのタイプはユニコードと同じです。

より深い理解のために、以下を参照してください。

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

ご清聴ありがとうございます。 – com

+1

OPは明らかにPython 2を使用しています(print文を参照)。 Python 2では、*デコードされた*(私はあなたが「コード化されていない」ということを意味していると思います)テキストは「unicode」型です。だから、明らかに、パンダは入力テキストを適切にデコードしなかった**。 – lenz

+0

公正なポイント...これはPythonでどのように動作するのかよくわかりません2.アイデア@lenz? – oscarbranson