У меня есть фрейм данных со столбцами MultiIndex, например:
2018-07-01 2018-08-01 2018-09-01 2018-10-01
user_id x y z x y z x y z x y z
2153 3 39 29 11 39 2 11 47 27 4 12 25
2154 22 31 32 9 25 3 9 29 36 8 2 19
2155 5 18 29 6 31 89 9 40 10 18 16 22
2156 18 49 18 4 14 116 4 12 23 17 9 12
2157 5 20 1 7 29 31 2 31 22 7 22 21
2158 4 19 19 32 12 26 3 19 26 12 38 3
2159 19 39 4 4 22 13 28 41 48 4 3 37
Это означает, что:
In [1]: df.columns
Out[1]: MultiIndex(levels=[[2018-07-01 00:00:00, 2018-08-01 00:00:00, 2018-09-01 00:00:00, 2018-10-01 00:00:00], [u'x', u'y', u'z']],
labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]],
names=[None, u'user_id'])
Я бы хотел получить его в длинном формате, чтобычто даты (в данном случае месяц) указаны в новом столбце, так что я могу начать группировку по (user, month)
Это должно выглядеть примерно так:
user_id month x y z
2153 2018-07-01 3 39 29
2153 2018-08-01 11 39 2
2153 2018-09-01 11 47 27
2153 2018-10-01 4 12 25
...
...
2159 2018-10-01 4 3 37
Любые идеикак сделать эту операцию?