У меня есть фрейм данных с 11 столбцами, один из которых date
является индексом. Я пытаюсь создать новый столбец со скользящим средним для столбца total
. Тем не менее я получаю сообщение об ошибке: TypeError: несовместимый индекс вставленного столбца с индексом кадра
import pandas as pd
df = pd.DataFrame({
'date':['2016-04-01','2016-05-01','2016-07-01','2016-08-01','2016-09-01', '2019-04-01','2019-05-01','2019-06-01','2019-08-01','2019-09-01'],
'Country':['USA', 'USA', 'USA', 'USA', 'USA','USA', 'USA', 'USA', 'USA', 'USA'],
'Region':['Eastern','Eastern','Eastern','Eastern','Eastern','Eastern','Eastern','Eastern','Eastern','Eastern'],
'State':['New York','New York','New York','New York','New York','New York','New York','New York','New York','New York'],
'Supplier':['ABC','ABC','ABC','ABC','ABC','ABC','ABC','ABC','ABC','ABC'],
'Location':['Bin-1', 'Bin-1', 'Bin-1', 'Bin-1', 'Bin-1','Bin-1', 'Bin-1', 'Bin-1', 'Bin-1', 'Bin-1'],
'Year':[2016,2016,2016,2016,2016,2019,2019,2019,2019,2019],
'Month':[4,5,7,8,9,4,5,6,8,9],
'periodcode':[4,5,7,8,9,4,5,6,8,9],
'Product':['bike','bike','bike','bike','bike','bike','bike','bike','bike','bike'],
'total':[0,2000,1000,4000,0,2000,2000,1000,4000,600]})
df.set_index('date', inplace=True)
df['mean'] = df.groupby(['Country','Region','State','Supplier','Location','Product'], as_index=False)['total'].rolling(3).mean().reset_index(level=0,drop=True)
df.head(10)
Однако, когда я включаю столбец year
в groupby
, то есть
df['mean'] = df.groupby(['Country','Region','State','Supplier','Location','Product','Year'], as_index=False)['total'].rolling(3).mean().reset_index(level=0,drop=True)
Я рассчитываю скользящее среднее. Проблема в том, что я хочу, чтобы группировка исключала Year
Есть идеи?