我想生成客户在交易之前所欠的违约金/迟付款。 例如:
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。
答案 0 :(得分:1)
在您的情况下,您可能需要groupby
和cumsum
和shift
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