我已经创建了一个最小的嵌套pandas的例子,根据这post中给出的说明,从一个嵌套字典.
nested_dict = { 'Full_Grades': {
'Science_Marks': {
'Physics': {
'Theo': 99,
'Prac': 100
},
'Biology': {
'Theo': 89,
'Prac': 100
}
},
'Finance_Marks': {
'Economics': {
'Theo': 99,
'Prac': 100
},
'Accounting': {
'Theo': 89,
'Prac': 100
}
}
}
}
import pandas as pd
out = pd.concat({k: pd.concat({k2: pd.DataFrame(v2) for k2,v2 in v.items()}, axis = 1)
for k, v in nested_dict.items()}, axis = 1) .unstack().to_frame().T
print(out)
这是输出—
Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades
Science_Marks Science_Marks Science_Marks Science_Marks Finance_Marks Finance_Marks Finance_Marks Finance_Marks
Physics Physics Biology Biology Economics Economics Accounting Accounting
Theo Prac Theo Prac Theo Prac Theo Prac
0 99 100 89 100 99 100 89 100
有人可以建议一种技术,将相同组的数字相加,直到倒数第二个指数水平.例如,Physics
人(在Full_Grades-Science_Marks-Physics
组下)的总数将是199人.如果最后一个索引级别名称不同(Theo
和Practical
)也没关系.
对于这个帖子,我没有任何工作要展示,因为我真的不知道如何开始.另外,如果问题的标题或内容不清楚,请原谅.我尽我所能地写下了它们.如果需要进一步澄清,请告诉我.
编辑1:这是我正在寻找的输出—
Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades Full_Grades
Science_Marks Science_Marks Science_Marks Science_Marks Finance_Marks Finance_Marks Finance_Marks Finance_Marks
Physics Physics Biology Biology Economics Economics Accounting Accounting
Theo Prac Theo Prac Theo Prac Theo Prac
0 99 100 89 100 99 100 89 100
Sum 199 189 199 189
此外,我希望有一种方法来访问对应于行0
的值,以便我可以进行各种分析,如总和、平均值等.