Подтвердить что ты не робот

Как читать файлы UTF-8 с помощью Pandas?

У меня есть файл UTF-8 с данными twitter, и я пытаюсь его прочитать в кадре данных Python, но я могу получить только тип "object" вместо строк 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

Каков правильный способ чтения и принудительного ввода данных UTF-8 в unicode с помощью Pandas?

Это не решает проблему:

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

4b9b3361

Ответ 1

Как упоминалось в другом постере, вы можете попробовать:

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

Однако это может оставить вас при взгляде на "объект" при печати dtypes. Чтобы подтвердить, что они utf8, попробуйте эту строку после прочтения CSV:

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

Пример вывода:

args            unicode
date         datetime64
host            unicode
kwargs          unicode
operation       unicode

Ответ 2

Используйте ключевое слово encoding с соответствующим параметром:

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

Ответ 3

Pandas хранит строки в object s. В python 3 все строки в unicode по умолчанию. Поэтому, если вы используете python 3, ваши данные уже находятся в юникоде (не вводите в заблуждение по типу object).

Если у вас есть python 2, используйте df = pd.read_csv('your_file', encoding = 'utf8'). Затем попробуйте, например, pd.lib.infer_dtype(df.iloc[0,0]) (я предполагаю, что первый col состоит из строк.)