我试图通过所有索引的聚合和将多索引df转换为嵌套字典。
数据框的格式为
jan feb
first second third
bar bar1 bar3 0 5
bar4 4 4
bar2 bar5 1 9
foo foo1 foo3 7 2
foo4 7 7
foo2 foo5 0 3
我尝试单独聚合每个索引,并使用.to_dict('records')
转换为dict,但无法实现每个索引聚合的嵌套字典,预期结果为
[
{'first': 'bar',
'jan': 5,
'feb': 18,
'sub_rows': [{'second': 'bar1',
'jan': 4,
'feb': 9,
'sub_rows': [{'third': 'bar3', 'jan': 0, 'feb': 5}, {'third': 'bar4', 'jan': 4, 'feb': 4}]
},
{'second': 'bar2',
'jan': 1,
'feb': 9,
'sub_rows': [{'third': 'bar5', 'jan': 1, 'feb': 9}]
}]
},
{'first': 'foo',
'jan': 14,
'feb': 12,
'sub_rows': [{'second': 'foo1',
'jan': 14,
'feb': 9,
'sub_rows': [{'third': 'foo3', 'jan': 7, 'feb': 2}, {'third': 'foo4', 'jan': 7, 'feb': 7}]
},
{'second': 'foo2',
'jan': 0,
'feb': 3,
'sub_rows': [{'third': 'foo5', 'jan': 0, 'feb': 3}]
}]
}
]
你能指导我实现这个格式吗?谢谢
3条答案
按热度按时间vaj7vani1#
alen0pnh2#
使用列表作为参数的另一个递归答案:
输出:
pw136qt23#
输出: