Using mask, eq,mul
df.mask(df.eq(df.min(0),1),df.eq(df.min(0),1).mul([1,2,3,4]))
Out[41]:
0 1 2 3
0 2.776975 1.433614 3.000000 4.000000
1 1.328099 2.000000 0.255676 0.360205
2 1.000000 0.547384 0.791848 0.340333
3 1.475486 0.114053 0.904416 0.060585
Or np.putmask
v=df.values
np.putmask(v, v==np.min(v,0), [1,2,3,4])
df
Out[72]:
0 1 2 3
0 2.776975 1.433614 3.000000 4.000000
1 1.328099 2.000000 0.255676 0.360205
2 1.000000 0.547384 0.791848 0.340333
3 1.475486 0.114053 0.904416 0.060585
source
share