I have a dataframe as below.
df = pd.DataFrame({'vx_1': [23.,31.,19.,np.nan,23.,np.nan,21.],
'ux_1': [13., 14., 11., np.nan, 13., np.nan, 17.],
'vx_2': [20.,30.,21.,22.,22.,np.nan,19.6],
'ux_2': [11., 4., 12., 9., 14, np.nan, 9.5],
'vx_3': [18.,26.5,29.,19.,np.nan,37.,20.],
'ux_3': [8., 14., 15., 9., np.nan, 12, 6.]})
I want to choose the smallest value from vx_1, vx_2, vx_3 columns and corresponded ux column value and add two columns to dataframe.
expected result:
pd.DataFrame({'vx_1': [23.,31.,19.,np.nan,23.,np.nan,21.],
'ux_1': [13., 14., 11., np.nan, 13., np.nan, 17.],
'vx_2': [20.,30.,21.,22.,22.,np.nan,19.6],
'ux_2': [11., 4., 12., 9., 14, np.nan, 9.5],
'vx_3': [18.,26.5,29.,19.,np.nan,37.,20.],
'ux_3': [8., 14., 15., 9., np.nan, 12, 6.],
'vx': [18.,26.5,19.,19.,22.,37.,19.6],
'ux': [8., 14., 11., 9., 14., 12., 9.5],})
I tried to apply below two functions and get different results.
def v_smallest(df):
return df[['vx_1','vx_2', 'vx_3' ]].min()
def u_smallest(df):
return df[['ux_1','ux_2','ux_3']].min()
df['vx'] = df.apply(v_smallest, axis=1)
df['ux'] = df.apply(u_smallest, axis=1)