Это лучше всего объяснить на примере.
У меня есть следующий фрейм данных (каждую строку можно рассматривать как транзакцию):
DATE AMOUNT
2017-01-29 10
2017-01-30 20
2017-01-31 30
2017-02-01 40
2017-02-02 50
2017-02-03 60
Я хотел бы вычислить 2скользящая сумма за день, но только для строк в феврале.
Фрагмент кода, который у меня есть в настоящее время:
df.set_index('DATE',inplace=True)
res=df.rolling('2d')['AMOUNT'].sum()
, что дает:
AMOUNT
2017-01-29 10
2017-01-30 30
2017-01-31 50
2017-02-01 70
2017-02-02 90
2017-02-03 110
но мне действительно нужны выходные данные только в последних 3 строках, операции с первыми 3 строками не нужны.Когда массив данных огромен, это влечет за собой огромную временную сложность.Как вычислить скользящую сумму только для последних 3 строк (кроме вычисления скользящей суммы для всех строк и последующей операции фильтрации строк после этого)?
* Я также не могу предварительно отфильтровать кадр данных, потому чтов январе не будет периода «просмотра назад» для получения правильного значения скользящей суммы.