Я хотел бы взять фрейм данных со столбцами MultiIndex (где индекс представляет собой DatetimeIndex) и агрегировать по разным функциям в зависимости от столбца.
Например, рассмотрим следующую таблицу, где индекс включает датыпервый уровень столбцов - это цена и объем, а второй уровень столбцов - это тикеры (например, AAPL и AMZN).
df1 = pd.DataFrame({"ticker":["AAPL"]*365,
'date': pd.date_range(start='20170101', end='20171231'),
'volume' : [np.random.randint(50,100) for i in range(365)],
'price': [np.random.randint(100,200) for i in range(365)]})
df2 = pd.DataFrame({"ticker":["AMZN"]*365,
'date': pd.date_range(start='20170101', end='20171231'),
'volume' : [np.random.randint(50,100) for i in range(365)],
'price': [np.random.randint(100,200) for i in range(365)]})
df = pd.concat([df1,df2])
grp = df.groupby(['date', 'ticker']).mean().unstack()
grp.head()
Что яЯ хотел бы сделать, чтобы агрегировать данные по месяцам, но принимая среднее значение цены и суммы объема.
Я бы подумал, что что-то вроде grp.resample("MS").agg({"price":"mean", "volume":"sum"})
должно работать, но это не потому, чтомногоиндексного столбца.Какой лучший способ сделать это?