Python Pandas: рассчитать скользящее среднее в группе - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть фрейм данных, содержащий временные ряды для 100 объектов:

object  period  value 
1       1       24
1       2       67
...
1       1000    56
2       1       59
2       2       46
...
2       1000    64
3       1       54
...
100     1       451
100     2       153
...
100     1000    21

Я хочу вычислить скользящее среднее с окном 10 для столбца value.Я думаю, мне нужно сделать что-то вроде

df.groupby('object').apply(lambda ~calculate MA~) 

, а затем объединить эту серию с исходным кадром данных по объекту?Не могу понять точные команды

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы можете использовать rolling для groupby объекта непосредственно как:

df['moving'] = df.groupby('object').rolling(10)['value'].mean()
0 голосов
/ 16 ноября 2018

Вы можете использовать Rolling с transform:

df['moving'] = df.groupby('object')['value'].transform(lambda x: x.rolling(10, 1).mean())

1 в rolling - для минимального числа периодов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...