Home > Software engineering >  Pandas - apply multiplication after masking and df.where
Pandas - apply multiplication after masking and df.where

Time:11-12

I can apply a mask to an entire dataframe and substitute True booleans with a given value, ex, 1.0, like so:

    0   1
 0  0.0 0.0 
 1  3.0 0.0

with:

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

then:

    0   1
0   0.0 0.0 
1   1.0 0.0

But, instead of a constant float value, how can I substitute each True bool using a multiplication factor, such as, say, the cell value * 0.5, ending up with:

   0   1
0  0.0 0.0 
1  1.5 0.0

CodePudding user response:

You can just do:

df[mask] *= 0.5

Output:

     0    1
0  0.0  0.0
1  1.5  0.0
  • Related