Извлечение информации из списка словарей

#python #dataframe #dictionary

#python #фрейм данных #словарь

Вопрос:

У меня есть список словарей:

 movies['genres'].head()
  

где каждая строка выглядит как:

    0     [{'id': 16, 'name': 'Animation'}, {'id': 35, 'name': 'Comedy'}, {'id': 10751, 'name': 'Family'}]
1    [{'id': 12, 'name': 'Adventure'}, {'id': 14, 'name': 'Fantasy'}, {'id': 10751, 'name': 'Family'}]
2                                     [{'id': 10749, 'name': 'Romance'}, {'id': 35, 'name': 'Comedy'}]
3        [{'id': 35, 'name': 'Comedy'}, {'id': 18, 'name': 'Drama'}, {'id': 10749, 'name': 'Romance'}]
4                                                                       [{'id': 35, 'name': 'Comedy'}]
Name: genres, dtype: object  

     
  

Я хотел бы сохранить ее во фрейме данных, где один столбец — ‘id’, а строки — значения идентификатора, и другой столбец ‘name’, где строки — значения имени. Я пытался с:

 pd.DataFrame(movies['genres'])
  

Однако, когда я запустил его, я получил:

         genres
0   [{'id': 16, 'name': 'Animation'}, {'id': 35, 'name': 'Comedy'}, {'id': 10751, 'name': 'Family'}]
1   [{'id': 12, 'name': 'Adventure'}, {'id': 14, 'name': 'Fantasy'}, {'id': 10751, 'name': 'Family'}]
2   [{'id': 10749, 'name': 'Romance'}, {'id': 35, 'name': 'Comedy'}]
  

Не могли бы вы мне помочь?
С уважением

Комментарии:

1. Можете ли вы отредактировать свой вопрос, чтобы я мог легко воспроизвести вывод? В настоящее время я не вижу объекта, movies определенного в вашем вопросе, но этот объект является центральным в вашем вопросе. Также, для удобства, было бы здорово, если бы ваше определение movies можно было легко воспроизвести в моем интерпретаторе, скопировав соответствующую часть кода из вашего вопроса. Спасибо!

2. Какова первая структура? Список словарей или список list of dictionary? Пожалуйста, поделитесь некоторыми данными в точном виде

3. Я отредактировал вопрос. Я не уверен, является ли это списком словарей или списком списка словарей, я новичок в этом. С уважением

Ответ №1:

Вы должны использовать команду, .from_dict() как описано здесь

 df = pd.DataFrame.from_dict(movies["genres"])