我有以下代码:
_tmp = {}
_tmp['pre'] = {
'A2': 10,
'B2': 15,
'C2': 20
}
_tmp['diff'] = {
'A1': 10,
'B1': 15,
'C1': 20
}
_tmp['sum'] = {
'A': 100,
'B': 150,
'C': 200
}
_dff = pd.DataFrame(data=_tmp.values(), index=_tmp.keys())
_dff[['A', 'B', 'C', 'A1', 'B1', 'C1', 'A2', 'B2', 'C2']]
因此,我得到了下面描述的结果:
我感兴趣的是如果可以在下面的pandas中构建一个结构:
答案 0 :(得分:2)
您真正关注的是三维结构,数据框架无法做到这一点。 (他们只是2D。)
这为您提供了几个选项:
(1)多个数据帧(pre / diff / sum)。
dfs = {k:pd.DataFrame(v.items()) for k,v in _tmp.items()}
(2)您可以构建的大熊猫Panel
:
pnl = pd.Panel(dfs)
这是一种对多个数据帧进行分组的方法。
(3)3d numpy矩阵:
>>> pnl.as_matrix()
[[['A1' 10]
['C1' 20]
['B1' 15]]
[['C2' 20]
['A2' 10]
['B2' 15]]
[['A' 100]
['C' 200]
['B' 150]]]
您必须编写自定义打印功能以获取您当前的确切请求输出,但这些将是您表示数据的方式。