Pandas: Ternary conditional operator for setting a value in a DataFrame Pandas: Ternary conditional operator for setting a value in a DataFrame pandas pandas

Pandas: Ternary conditional operator for setting a value in a DataFrame


In pandas no, in numpy yes.

You can use numpy.where or convert boolean Series created by condition to float - Trues are 1.0 and Falses are 0.0:

pd['irr'] = np.where(pd['cs']*0.63 > pd['irr'], 1.0, 0.0)

Or:

pd['irr'] = (pd['cs']*0.63 > pd['irr']).astype(float)

Sample:

pd = pd.DataFrame({'cs':[1,2,5],                   'irr':[0,100,0.04]})print (pd)   cs     irr0   1    0.001   2  100.002   5    0.04pd['irr'] = (pd['cs']*0.63 > pd['irr']).astype(float)print (pd)   cs  irr0   1  1.01   2  0.02   5  1.0