客户的先前默认值的滚动计数

时间:2019-06-10 02:00:42

标签: python pandas pandas-groupby

我想生成客户在交易之前所欠的违约金/迟付款。 例如:

Customer   Late  Count
A          YES      0
B          NO       0
A          NO       1
B          YES      0
B          NO       1
A          YES      1
A          YES      2

每个客户的第一笔交易的计数为0。此后的每笔交易都将计算当前交易之前该客户的滞纳金。由于A在之前的两次交易中都较晚,因此最后一笔交易的计数为2。

1 个答案:

答案 0 :(得分:1)

在您的情况下,您可能需要groupbycumsumshift

df.Late.eq('YES').groupby(df.Customer).apply(lambda x : x.cumsum().shift().fillna(0)).astype(int)
Out[501]: 
0    0
1    0
2    1
3    0
4    1
5    1
6    2
Name: Late, dtype: int32