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