Кажется, я не могу понять, как повернуть фрейм данных со столбцами с многоуровневым индексом.
Я видел этот связанный пост , но не могу понять, как применить его к моей проблеме.
Если у меня есть 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