Этот вопрос не похож на другие подобные вопросы, которые я мог найти, потому что я пытаюсь объединить окно просмотра и порог в одну скользящую сумму. На самом деле я не уверен, что то, что я пытаюсь сделать, достижимо за один шаг:
У меня есть pandas фрейм данных со столбцом datetime и столбцом значения. Я создал столбец, который суммирует столбец значений (V) за скользящее временное окно. Однако я бы хотел, чтобы эта скользящая сумма сбрасывалась в 0, как только она достигает определенного порога.
Я не знаю, возможно ли это сделать за один шаг манипулирования столбцом, поскольку на каждом шаге в сумме действуют два условия - окно просмотра и порог. Если у кого-то есть идеи о том, возможно ли это и как я могу этого достичь, пожалуйста, дайте мне знать. Я знаю, как сделать это итеративно, однако это очень и очень медленно (мой фрейм данных> 1 миллиона записей).
Пример:
Время просмотра: 3 минуты
Порог: 3
+---+-----------------------+-------+--------------------------+
| | myDate | V | rolling | desired_column |
+---+-----------------------+-------+---------+----------------+
| 1 | 2020-04-01 10:00:00 | 0 | 0 | 0 |
| 2 | 2020-04-01 10:01:00 | 1 | 1 | 1 |
| 3 | 2020-04-01 10:02:00 | 2 | 3 | 3 |
| 4 | 2020-04-01 10:03:00 | 1 | 4 | 1 |
| 5 | 2020-04-01 10:04:00 | 0 | 4 | 1 |
| 6 | 2020-04-01 10:05:00 | 4 | 7 | 5 |
| 7 | 2020-04-01 10:06:00 | 1 | 6 | 1 |
| 8 | 2020-04-01 10:07:00 | 1 | 6 | 2 |
| 9 | 2020-04-01 10:08:00 | 0 | 6 | 0 |
| 10| 2020-04-01 10:09:00 | 3 | 5 | 5 |
+---+-----------------------+-------+---------+----------------+
В этом примере суммарная сумма не учитывает никаких значений в строке или перед строкой, которая нарушает (или равна) пороговое значение 3.