Pandas - 在屏蔽和 df.where 之后应用乘法

Pandas - apply multiplication after masking and df.where

我可以将掩码应用于整个数据帧,并用给定值 ex,1.0 替换 True 布尔值,如下所示:

    0   1
 0  0.0 0.0 
 1  3.0 0.0

与:

mask = (df != 0.0)
df = df.where(mask, 1.0)

然后:

    0   1
0   0.0 0.0 
1   1.0 0.0

但是,我如何使用乘法因子代替每个 True bool,而不是常量 float 值,例如单元格值 * 0.5,最后为:

   0   1
0  0.0 0.0 
1  1.5 0.0

你可以这样做:

df[mask] *= 0.5

输出:

     0    1
0  0.0  0.0
1  1.5  0.0