Skip to content Skip to sidebar Skip to footer

Pandas Taking Cumulative Sum With Reset

Problem I'm trying to keep a running total of consecutive timestamps (minute frequency). I currently have a way of taking a cumulative sum and resetting it on the condition that tw

Solution 1:

You can use the diff method which finds the difference between the current row and previous row. You can then check and see if this difference is equal to one minute. From here, there is lots of trickery to reset streaks within data.

We first take the cumulative sum of the boolean Series, which gets us close to what we want. To reset the series we multiply this cumulative sum series by the original boolean, since False evaluates as 0.

s = cb_arbitrage.timestamp.diff() == pd.Timedelta('1 minute')
s1 = s.cumsum()
s.mul(s1).diff().where(lambda x: x < 0).ffill().add(s1, fill_value=0) + 101.012.023.034.045.056.067.071.081.091.0102.0

Post a Comment for "Pandas Taking Cumulative Sum With Reset"