Извлечение значений вложенного словаря в плоские данные для фрейма данныхPython

Программы на Python
Ответить
Anonymous
 Извлечение значений вложенного словаря в плоские данные для фрейма данных

Сообщение Anonymous »

Как извлечь значения ключей словаря с каждого уровня в кадр данных? Я использовал pd.json_normalize, но он не соответствует моим потребностям, поскольку предыдущие ключи используются в качестве префиксов. Это то, что я пробовал
import pandas as pd

myfamily = {
"child1": {
"name": "Emil",
"year": 2004
},
"child2": {
"name": "Tobias",
"year": 2007,
"child3": {
"name": "Ken",
"year": 2003
}
}
}

df = pd.json_normalize(myfamily, sep='_')

Мне нужен результат
pd.DataFrame({
"name": ["Emil", "Tobias", "Ken"],
"year": [2004, 2007, 2003]})

Предположим, что словарь вложен гораздо глубже и имеет аналогичную структуру на каждом уровне, как в примере. Однако мне бы хотелось, чтобы что-то работало, когда порядок и количество ключей на каждом уровне различны. Например, этот словарь должен давать тот же результат. Также я заранее знаю все названия клавиш.
myfamily = {
"child1": {
"name": "Emil",
"year": 2004
},
"child2": {
"name": "Tobias",
"year": 2007,
"child3": {
"year": 2003
"name": "Ken",
}
}
}

Этот словарь
myfamily = {
"child1": {
"name": "Emil",
"year": 2004
},
"child2": {
"name": "Tobias",
"year": 2007,
"age" : 1
}
}

должен дать результат
pd.DataFrame({
"name": ["Emil", "Tobias"],
"year": [2004, 2007],
"age": [None, 1]})


Подробнее здесь: https://stackoverflow.com/questions/798 ... -dataframe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»