【发布时间】:2021-02-04 09:30:17
【问题描述】:
我有一个这样的目录:
dict = {'Filter1':{'Method1':{'Fuction1':{'Value1': 1, 'Value2': 2},
'Fuction2':{'Value1': 1, 'Value2': 2}},
'Method2':{'Fuction1':{'Value1': 1, 'Value2': 2},
'Fuction2':{'Value1': 1, 'Value2': 2}}},
'Filter2':{'Method1':{'Fuction1':{'Value1': 1, 'Value2': 2},
'Fuction2':{'Value1': 1, 'Value2': 2}},
'Method2':{'Fuction1':{'Value1': 1, 'Value2': 2},
'Fuction2':{'Value1': 1, 'Value2': 2}}}}
我想创建一个这种形状的数据框:
Filter1 Filter2
Method1 Method2 Method1 Method2
Function1 Value1 1 1 1 1
Value2 2 2 2 2
Function2 Value1 1 1 1 1
Value2 2 2 2 2
我该怎么做?我能找到的所有帖子都只是指两个子行或子列,但从来没有两个。 谢谢各位!!
到目前为止,我尝试了这种方法:
df = pd.DataFrame.from_dict({(i, j): dict[i][j]
for i in dict.keys()
for j in dict[i].keys()
},
orient='index')
女巫给了我这个结果:
Fuction1 Fuction2
Filter1 Method1 {'Value1': 1, 'Value2': 2} {'Value1': 1, 'Value2': 2}
Method2 {'Value1': 1, 'Value2': 2} {'Value1': 1, 'Value2': 2}
Filter2 Method1 {'Value1': 1, 'Value2': 2} {'Value1': 1, 'Value2': 2}
Method2 {'Value1': 1, 'Value2': 2} {'Value1': 1, 'Value2': 2}
但我希望交换行和列并将 Value1 和 Value2 作为行名
【问题讨论】:
-
{'Value1': 1, 'Value2': 2, 'Value2'}这不是有效的python。 -
你是对的。是复制粘贴错误。
-
不。这只会创建很多子列而不是子行
标签: python pandas dataframe dictionary nested