Ich habe einen MultiIndex Pandas Datenrahmen, wobei der Index der ersten Ebene eine Gruppe und der Index der zweiten Ebene Zeit ist. Was ich tun möchte, ist, innerhalb jeder Gruppe auf die tägliche Frequenz zu resampeln, wobei der Durchschnitt der Intraday-Beobachtungen genommen wird.Pandas TimeGroup auf Multiindex
import pandas as pd
import numpy as np
data = pd.concat([pd.DataFrame([['A']*72, list(pd.date_range('1/1/2011', periods=72, freq='H')), list(np.random.rand(72))], index = ['Group', 'Time', 'Value']).T,
pd.DataFrame([['B']*72, list(pd.date_range('1/1/2011', periods=72, freq='H')), list(np.random.rand(72))], index = ['Group', 'Time', 'Value']).T,
pd.DataFrame([['C']*72, list(pd.date_range('1/1/2011', periods=72, freq='H')), list(np.random.rand(72))], index = ['Group', 'Time', 'Value']).T],
axis = 0).set_index(['Group', 'Time'])
Das ist, was ich bisher versucht:
daily_counts = data.groupby(pd.TimeGrouper('D'), level = ['Time']).mean()
Aber ich erhalte den folgenden Fehler:
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'MultiIndex'
Jede Idee, wie dieses Problem zu lösen?
Vielen Dank das ist mein Problem gelöst. Also ich denke, das wichtigste Take-Away ist, dass, wenn ich auf einem MultiIndex gruppieren möchte, ich noch alle Indexstufen als Zackenbarsche bestehen muss. Ist es fair? – FLab
Ja, aber vielleicht ist die zweite Lösung häufiger, siehe [hier] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#groupby-syntax-with-window-and-resample- operations). – jezrael
Auf Ihrer zweiten Lösung, Hervorhebung dieses Bugs (behoben in Pandas 0,19), die Kwargen in resample verhindern könnte: https://github.com/pandas-dev/pandas/issues/13235 – FLab