Skip to content Skip to sidebar Skip to footer

Difference Of Days Between Two Dates Until A Condition Is Met

I have got trouble to make to compute the number of days in a row until a condition is found. It is given in the following table were Gap done is the messy table I obtained with th

Solution 1:

IIUC, you need to find the boolean mask m1 where win has previous row also win. From m1 create a groupID s to separate group win. Split them into group and cumsum

m = df.Result.eq('Win')
m1 = m & m.shift()
s = m1.ne(m1.shift()).cumsum()
df['Expected Gap'] = df.groupby(['Player', s])['Gap done'].cumsum()

Out[808]:
   Player      Result                 Date  Gap done  Expected Gap
0   K2000        Lose  2015-11-13 13:42:00      NaN           NaN
1   K2000        Lose  2016-03-23 16:40:00    131.0         131.0
2   K2000        Lose  2016-05-16 19:17:00     54.0         185.0
3   K2000         Win  2016-06-09 19:36:00     54.0         239.0
4   K2000         Win  2016-06-30 14:05:00     54.0          54.0
5   K2000        Lose  2016-07-29 16:20:00     29.0          29.0
6   K2000         Win  2016-10-08 17:48:00     29.0          58.0
7   Kssis        Lose  2007-02-25 15:05:00      NaN           NaN
8   Kssis        Lose   2007-04-25 6:07:00     59.0          59.0
9   Kssis  Not-ranked  2007-06-01 16:54:00     37.0          96.0
10  Kssis        Lose  2007-09-09 14:33:00     99.0         195.0
11  Kssis        Lose  2008-04-06 16:27:00    210.0         405.0

Post a Comment for "Difference Of Days Between Two Dates Until A Condition Is Met"