【发布时间】:2019-01-30 18:28:45
【问题描述】:
我似乎无法弄清楚如何使用具有多级索引的列来旋转数据框。
我已经看到了这个related post,但似乎无法弄清楚如何将它应用于我的问题。
如果我有df:
df = pd.DataFrame.from_dict({('Mule Creek', 'ATI'): {5: 5.0, 6: 6.0, 7: 7.0, 8: 8.0, 9: 9.0},
('Mule Creek', 'ATIMR'): {5: 0.04115419564079352,
6: 0.04115419564079352,
7: 0.04115419564079352,
8: 0.04115419564079352,
9: 0.04115419564079352},
('Saddle Mtn.', 'ATI'): {5: 5.0, 6: 6.0, 7: 7.0, 8: 8.0, 9: 9.0},
('Saddle Mtn.', 'ATIMR'): {5: 0.05260285024705004,
6: 0.05260285024705004,
7: 0.05260285024705004,
8: 0.05260285024705004,
9: 0.05260285024705004},
('Calvert Creek', 'ATI'): {5: 5.0, 6: 6.0, 7: 7.0, 8: 8.0, 9: 9.0},
('Calvert Creek', 'ATIMR'): {5: 0.0068488368752893354,
6: 0.0068488368752893354,
7: 0.0068488368752893354,
8: 0.0068488368752893354,
9: 0.0068488368752893354}})
我想创建一个数据透视表,其中ATI 成为索引并使用`aggfunc='mean'。
我试过了:
df= df.unstack(level=-1)
df =df.pivot_table(values=tmp[0],index='level_0',columns='level_1',aggfunc=np.mean)
但我明白了:
KeyError: 1.0
想要的结果:
ATI ATIMR
5 5.0 0.0335353
6 6.0 0.0335353
7 7.0 0.0335353
8 8.0 0.0335353
9 9.0 0.0335353
【问题讨论】:
标签: python pandas pivot-table