web-dev-qa-db-ja.com

PandasでUTF-8ファイルを読み取る方法

Twitterデータを含むUTF-8ファイルがあり、Pythonデータフレームに読み取ろうとしていますが、Unicode文字列ではなく「オブジェクト」タイプのみを取得できます。

# 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

PandasでUTF-8データを読み取り、ユニコードに強制する正しい方法は何ですか?

これは問題を解決しません:

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

テキストファイルはこちら: https://raw.githubusercontent.com/l1x/nlp/master/1459966468_324.csv

17
Istvan

他のポスターが述べたように、あなたは試してみることができます:

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

ただし、これにより、dtypeを印刷するときに「オブジェクト」を見ることになります。それらがutf8であることを確認するには、CSVを読んだ後に次の行を試してください。

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

出力例:

args            unicode
date         datetime64
Host            unicode
kwargs          unicode
operation       unicode
17
Sam

encodingキーワードを適切なパラメーターとともに使用します。

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

Pandasは、文字列をobjectsに保存します。 python 3では、すべての文字列はデフォルトでUnicodeになっています。したがって、python 3を使用すると、データはすでにUnicodeになります(誤解しないでくださいタイプobject)。

python 2)がある場合は、df = pd.read_csv('your_file', encoding = 'utf8')を使用してから、たとえばpd.lib.infer_dtype(df.iloc[0,0])を試してください(最初のcolは文字列で構成されていると思います)。

1
ptrj