Estoy intentando aplicar una función lambda a un marco de datos de pandas. Mi pregunta es cómo puedo aplicar una función lambda a la columna a según el valor en la columna b usando la declaración if.
ABC 2 5 7 4 5 9 6 7 9 df['B'].apply(lambda x: x+3 if x<(#the value in column C) else x)Debe llamar a apply en el marco de datos, con axis=1 , en lugar de en la columna B :
>>> df.apply(lambda x: x['B']+3 if x['B']<x['C'] else x['B'], axis=1) 0 8 1 8 2 10 dtype: int64Pero, una forma mucho más eficiente (más rápida) sería hacer esto:
>>> df['B'] + df['B'].lt(df['C']) * 3 0 8 1 8 2 10 dtype: int64