Мой словарь выглядит следующим образом:Панды dataframe из вложенного словаря
{'x': {'b': 10, 'c': 20}, 'y': {'b': '33', 'c': 44}}
Я хочу, чтобы получить dataframe, который выглядит следующим образом:
index col1 col2 val
0 x b 10
1 x c 20
2 y b 33
3 y c 44
Я пытался дозвониться pandas.from_dict(), но не дал мне желаемого результата. Итак, что является самым элегантным, практичным способом достижения этого?
EDIT: В действительности, мой словарь имеет глубину 4, поэтому я хотел бы увидеть решение для этого случая или, в идеале, тот, который будет работать на произвольной глубине в общей настройке.
Вот пример более глубокого словаря: {'x':{'a':{'m':1, 'n':2}, 'b':{'m':10, 'n':20}}, 'y':{'a':{'m':100, 'n':200}, 'b':{'m':111, 'n':222}} }
Соответствующий dataframe должен иметь 8 строк.
ОТВЕТ:
df = pd.DataFrame([(k1, k2, k3, k4, k5, v) for k1, k2345v in dict.items()
for k2, k345v in k2345v.items()
for k3, k45v in k345v.items()
for k4, k5v in k45v.items()
for k5, v in k5v.items()])
Можете ли вы изменить это для работы со словарем произвольной глубины? В моем случае у меня есть глубина 4, но в идеале я бы хотел увидеть общие решения. Спасибо –
@BaronYugovich Можете ли вы добавить более подробный пример – SirParselot
Я принимаю этот ответ, потому что мне удалось его обобщить, обобщение добавлено в мой первоначальный вопрос. –