Потеря записей при преобразовании DataFrame в словарь - PullRequest
0 голосов
/ 05 мая 2018

Я анализирую файл CSV в Dataframe. 10000 записей, нет проблем. Две колонки одна «ID», одна «Отзывы».

Я пытаюсь преобразовать DF в словарь, в котором keys = 'ID', а values ​​= 'Reviews'.

По какой-то причине новый словарь содержит только 680 записей.

#read csv data file
data = pd.read_csv("Movie_reviews.csv",
                   delimiter='\t',
                   header=None,names=['ID','Reviews'])
reviews = data.set_index('ID').to_dict().get('Reviews')
len(reviews)

вывод 680

Если я не добавлю '.get (' Reviews ')', все будет одной большой записью.

датафрейм 'data' выглядит следующим образом

               ID                                            Reviews
1      076780192X  it always amazes me how people can rate the DV...
2      0767821599  This movie is okay, but, its not worth what th...
3      0782008380  If you love the Highlander 1 movie and the ser...
4      0767726227  This is a great classic collection, if you lik...
5      0780621832  This is the second of John Ford and John Wayne...
6      0310263662  I am an evangelical Christian who believes in ...
7      0767809270  Federal law, in one of its numerous unfunded m...

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

На случай, если это кому-нибудь поможет.

Идентификаторы для обзоров фильмов не были уникальными. Функция .nunique () показала это, как предложено @YOLO.

Присвоение словарю только значений (Обзоры) автоматически добавляет уникальные ключи в соответствии с предложением @JackHoman, решающим мою проблему.

0 голосов
/ 05 мая 2018

Я думаю, что вы можете сделать:

Метод 1:

reviews = data.set_index('ID')['Reviews'].to_dict()

Метод 2: Здесь мы конвертируем отзывы в список для каждого идентификатора, чтобы не потерять информацию.

reviews = data.groupby('ID')['Reviews'].apply(list).to_dict()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...