Извлечение значений ключей словаря с каждого уровня в строки в кадре данных с разной структурой на каждом уровне.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 ... with-diffe

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