在Pandas中填充出现的值

2024-09-30 20:33:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我对熊猫还比较陌生,一旦有了熊猫,我就很难填上一个值。这很难解释,所以我将举一个例子。这是我目前代码的输出。你知道吗

Cont_No Mnth    Short   Reset   Outst   Total   Default
6293    1       249.17  1       249.17  747.51  0
6293    2       249.17  0       498.34  747.51  0
6293    3       249.17  0       747.51  747.51  1
6293    4       -43.53  0       703.98  747.51  0
6293    5       -292.7  0       411.28  747.51  0
6294    1       0       1       0       800.00  0
6294    2       0       0       0       800.00  0
6294    3       0       0       0       800.00  0
6294    4       0       0       0       800.00  0

它代表不同的贷款,以及每个月的亏空金额。一旦贷款的未清余额(outt)大于或等于“Total”列,“Default”列变为1。当未清余额低于“总计”时,“默认”列将返回0(因为我在代码中使用了>;=)。你知道吗

但是,一旦“Default”变为1,我希望它在合同期间保持不变(在本例中,直到第5行)。你知道吗

(对于新贷款的第一个月,“重置”列编程设置为1,其他地方编程设置为0。)

如果有人能解释一下怎么做,我将不胜感激。我尝试在默认列上使用max(),但4小时后它仍在运行(我的其余代码总共需要大约10分钟才能运行)。你知道吗


Tags: no代码default编程代表例子余额total
1条回答
网友
1楼 · 发布于 2024-09-30 20:33:02

这是cummax的一个很好的解决方案:

df['Default'] = df.groupby('Cont_No')['Default'].cummax()

输出:

   Cont_No  Mnth   Short  Reset   Outst   Total  Default
0     6293     1  249.17      1  249.17  747.51        0
1     6293     2  249.17      0  498.34  747.51        0
2     6293     3  249.17      0  747.51  747.51        1
3     6293     4  -43.53      0  703.98  747.51        1
4     6293     5 -292.70      0  411.28  747.51        1
5     6294     1    0.00      1    0.00  800.00        0
6     6294     2    0.00      0    0.00  800.00        0
7     6294     3    0.00      0    0.00  800.00        0
8     6294     4    0.00      0    0.00  800.00        0

相关问题 更多 >