Извлечение списка JSON-объектов в строковой форме из столбца Pandas Dataframe - PullRequest
0 голосов
/ 13 июня 2018

У меня есть совершенно нормальный кадр данных pandas, который я создаю после загрузки этого набора данных: https://www.kaggle.com/tmdb/tmdb-movie-metadata/data

Как видите, столбец жанров содержит вложенную структуру, которая выглядит как список словарей или jsonобъекты в зависимости от того, как вы это видите?Ключами этих словарей являются 'id' и 'name'.

В любом случае, я попробовал все, включая преобразование столбца в json с помощью tojson () или использование метода pandas json_normalize () без какой-либо удачи.

Если я использую json_normalize (), я получаю объект AttributeError: 'str' не имеет атрибута 'itervalues':

pd.io.json.json_normalize(obj_movies['genres'], meta = ['id','name']) 

На самом деле моей целью было бы проанализировать этот список для созданиянабор уникальных жанровых названий для каждой строки ...

1 Ответ

0 голосов
/ 13 июня 2018

Использование:

import ast

obj_movies = pd.read_csv('tmdb_5000_movies.csv')
obj_movies['uniq'] = [list(set([y['name'] for y in x])) for x in obj_movies['genres'].apply(ast.literal_eval)]
print (obj_movies[['uniq'] ].head(10))
                                            uniq
0  [Fantasy, Science Fiction, Adventure, Action]
1                   [Fantasy, Adventure, Action]
2                     [Crime, Adventure, Action]
3               [Drama, Crime, Thriller, Action]
4           [Science Fiction, Adventure, Action]
5                   [Fantasy, Adventure, Action]
6                            [Family, Animation]
7           [Science Fiction, Adventure, Action]
8                   [Fantasy, Family, Adventure]
9                   [Fantasy, Adventure, Action]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...