Python 计算增量行直到条件

Python calculate increment rows till a condition

如何得到下面的结果。

Sample Data with Output

时间默认为要计算的列。我们需要获取增量数字作为默认时间,这个增量应该是直到默认列为 1。

以上显示的是一个示例帐户,同样必须应用于多个帐户 ID。

使用:

m = df['Default'].eq(1).groupby(df['acct_id']).transform(lambda x: x.shift(fill_value=False).cummax())

df.loc[~m, 'new'] = df[~m].groupby('acct_id').cumcount()
print (df)
  acct_id  Default  new
0  xxx123        0  0.0
1  xxx123        0  1.0
2  xxx123        1  2.0
3  xxx123        1  NaN