我是 python 和 pandas 的新手。 我发现自己在 pandas 中创建 Panel 或多索引 DataFrame 时遇到了问题。
事实是我有一个多级字典,目前是三个级别,其中最终值是一个整数,我希望它在每个级别中的键是 Panel 的对应索引,对应于 Panel 的项目,长轴, 和短轴到我的字典的第一、第二、第三级。当我从我的字典中创建一个时,索引不匹配。 这是我的字典。
d={'item1':{'major0':{'minor0':1,
'minor1':2},
'major1':{'minor0':3,
'minor1':4}
},
'item2':{'major0':{'minor0':5,
'minor1':6},
'major1':{'minor0':7,
'minor1':8}
}
}
有什么简单的方法可以做到这一点。我查看了 Pandas 教程,但没有看到任何功能支持。
最佳答案
构造完成后可以应用swap_axes方法:
In [1]: p = pd.Panel(d)
In [2]: p.swapaxes()
Out[2]:
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 2 (major_axis) x 2 (minor_axis)
Items axis: item1 to item2
Major_axis axis: major0 to major1
Minor_axis axis: minor0 to minor1
值得一提的是 from_dict
Panel 方法,它允许您传递一个 orient(但显然只允许 items/minor,而您想做 major...):
In [11]: pd.Panel.from_dict(d, orient='minor') # default orient is items
Out[11]:
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 2 (major_axis) x 2 (minor_axis)
Items axis: major0 to major1
Major_axis axis: minor0 to minor1
Minor_axis axis: item1 to item2
关于python - 通过多级字典在 Pandas 中创建面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129005/