Я использую приведенный ниже код в попытке сгруппировать по значению столбца, затем выполнить кумулятивную сумму и скользящее среднее для упорядоченных данных только для этой группы:
#this works OK
df['csum'] = df.sort_values(['name','day_time','delta_minutes'],ascending=True).groupby(['name']) ['value'].cumsum()
#throws error
df['rolling'] = df.sort_values(['name','day_time','delta_minutes'],ascending=True).groupby(['name'])['value'].rolling(window=2).mean()
Исходный кадр данных:
name value delta_minutes day_time
0 MAC000039 0.069 0 2012-10-13
1 MAC000039 0.054 30 2012-10-13
2 MAC000039 0.085 60 2012-10-13
3 MAC000040 0.082 0 2012-10-12
4 MAC000040 0.053 30 2012-10-12
5 MAC000040 0.075 60 2012-10-12
6 MAC000040 0.195 90 2012-10-12
7 MAC000039 0.098 0 2012-10-12
8 MAC000039 0.055 30 2012-10-12
9 MAC000039 0.054 60 2012-10-12
10 MAC000039 0.099 90 2012-10-12
Ожидаемый результат
name value delta_minutes day_time csum rolling
0 MAC000039 0.069 0 2012-10-13 0.375 ..
1 MAC000039 0.054 30 2012-10-13 0.429 ..
2 MAC000039 0.085 60 2012-10-13 0.514 ..
При попытке получить скользящее среднее я получаю следующую ошибку
TypeError: incompatible index of inserted column with frame index
Есть идеи, как это сделать?