我想执行以下任务。给定 2 列(好和坏),我想用运行总计替换这两列的任何行。这是当前数据帧以及所需数据帧的示例。
编辑:我应该添加我的意图。我正在尝试使用连续变量作为输入来创建同等分箱(在本例中为 20)的变量。我知道 pandas cut 和 qcut 函数可用,但是返回的结果的好/坏率为零(需要计算证据权重和信息价值)。分子或分母中的零将不允许数学计算进行。
d={'AAA':range(0,20),
'good':[3,3,13,20,28,32,59,72,64,52,38,24,17,19,12,5,7,6,2,0],
'bad':[0,0,1,1,1,0,6,8,10,6,6,10,5,8,2,2,1,3,1,1]}
df=pd.DataFrame(data=d)
print(df)
Here is an explanation of what I need to do to the above dataframe.
粗略地说,每当我遇到任一列的零时,我都需要对不为零的列使用运行总计,直到下一行包含零的列具有非零值。
这是所需的输出:
dd={'AAA':range(0,16),
'good':[19,20,60,59,72,64,52,38,24,17,19,12,5,7,6,2],
'bad':[1,1,1,6,8,10,6,6,10,5,8,2,2,1,3,2]}
desired_df=pd.DataFrame(data=dd)
print(desired_df)