Я пытаюсь создать кадр данных в Python с Pandas, который включает вложенные словари и списки списков. Я просмотрел другие вопросы о преобразовании вложенных словарей, но я не смог найти достаточного ответа.Преобразование списка, вложенного под два словаря в DataFrame
У меня есть словарь, который, например, представляет собой книгу действий, в которой отслеживаются внеклассные школьные уроки. В этом случае есть два урока, и каждый из уроков - это собственный словарь, вложенный в словарь словаря активности. Каждый словарь уроков содержит список списков действий каждого человека, организованный по месяцам. Количество студентов, выполняющих деятельность каждый месяц, является переменной, но структура всегда является студентом-мероприятием-протоколом. Например:
activity_dict = {
'lesson1' : { 'january' : [['Todd', 'Running', 30],['Christy', 'Studying', 25],['Alex','Soccer', 10]],
'february' : [['Jim', 'Bobsledding', 5],['Frank', 'Jogging',8]]},
'lesson2' : {'february' : [['Todd', 'Running', 18],['John', 'Studying', 3],['Don','Soccer', 40]],
'march' : [['Tom', 'Bobsledding', 10],['Sam', 'Yoga', 42]],
'april' : [['Julie', 'Biking', 20],['Chris', 'Baseball', 10]]}
}
Я пытаюсь получить вывод, что для деятельности каждого студента, колой = Lesson #, ColB = Месяц, ColC = Студент, Холода = активность, и Cole = Протокол. Пример вывода будет:
Lesson # Month Student Activity Minutes
Lesson 1 February Jim Bobsledding 5
Lesson 1 February Frank Jogging 8
Lesson 2 February Todd Running 18
Я нашел способ создания dataframe столбцов С через Е, но я не могу включить столбцы А и B.
Мой код прямо сейчас выглядит следующим образом:
import pandas
activity_log = []
for lesson, all_activities in activity_dict.items():
for month, month_activities in all_activities.items():
activity_log.append(pandas.DataFrame(month_activities))
Как я могу обновить это, чтобы включить словарные ключи (урок и месяц) в качестве столбцов A и B? Я не уверен, что изменение списка списков в словаре поможет, но я сохранил его как список, поскольку именно так я получил данные.
Отлично , Попробуйте это сейчас, ответьте как можно скорее! – Venetian
Это работает! Быстрый вопрос, почему импорт pandas как pd настолько распространен? Это просто, что pd намного удобнее? – Venetian
Я думаю, что у него есть два преимущества: он экономит при вводе (если вы ссылаетесь на множество функций или классов Pandas), и это делает код более читаемым. – unutbu