Постоянное обновление Агрегации последних 5 наборов данных в python - PullRequest
2 голосов
/ 22 февраля 2020

Мне нужно добавить новую функцию, которая объединяет последние 5 данных. Когда он добавляет 6-е данные, он должен забыть первые данные и учитывать только последние 5 наборов данных, как показано ниже. Вот фиктивный фрейм данных, new_feature - ожидаемый результат.

id    feature    new_feature

1       a            a
2       b            a+b
3       c            a+b+c
4       d            a+b+c+d
5       e            a+b+c+d+e
6       f            b+c+d+e+f
7       g            c+d+e+f+g

1 Ответ

1 голос
/ 22 февраля 2020

Используйте Series.rolling с параметром min_periods=1 и sum:

df = pd.DataFrame({'feature':[1,2,4,5,6,2,3,4,5]})
df['new_feature'] = df['feature'].rolling(5, min_periods=1).sum()
print (df)
   feature  new_feature
0        1          1.0
1        2          3.0
2        4          7.0
3        5         12.0
4        6         18.0
5        2         19.0
6        3         20.0
7        4         20.0
8        5         20.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...