У меня есть pandas DataFrame с timedeltas как совокупная сумма этих дельт в отдельном столбце, выраженная в миллисекундах. Ниже приведен пример:
Transaction_ID Time TimeDelta CumSum[ms]
1 00:00:04.500 00:00:00.000 000
2 00:00:04.600 00:00:00.100 100
3 00:00:04.762 00:00:00.162 262
4 00:00:05.543 00:00:00.781 1043
5 00:00:09.567 00:00:04.024 5067
6 00:00:10.654 00:00:01.087 6154
7 00:00:14.300 00:00:03.646 9800
8 00:00:14.532 00:00:00.232 10032
9 00:00:16.500 00:00:01.968 12000
10 00:00:17.543 00:00:01.043 13043
Я хотел бы иметь возможность предоставить максимальное значение для CumSum [мс], после которого накопительная сумма снова начнется с 0. Например, если максимальное значение было 3000 в приведенном выше примере, результаты будут выглядеть так:
Transaction_ID Time TimeDelta CumSum[ms]
1 00:00:04.500 00:00:00.000 000
2 00:00:04.600 00:00:00.100 100
3 00:00:04.762 00:00:00.162 262
4 00:00:05.543 00:00:00.781 1043
5 00:00:09.567 00:00:04.024 0
6 00:00:10.654 00:00:01.087 1087
7 00:00:14.300 00:00:03.646 0
8 00:00:14.532 00:00:00.232 232
9 00:00:16.500 00:00:01.968 2200
10 00:00:17.543 00:00:01.043 0
Я исследовал использование оператора по модулю, но мне удалось сбросить его обратно до нуля только тогда, когда результирующее cumsum равно предоставленному пределу (т.е. cumsum [ms] 500% 500 равно нулю).
Заранее благодарим за любые мысли, которые у вас могут возникнуть, и сообщите мне, могу ли я предоставить дополнительную информацию.
expanding_apply
- stackoverflow.com/a/26605026/3923281 - person Alex Riley   schedule 25.11.2014