Asignar valores basados ​​en múltiples condiciones.

Mi dataframe se ve así:

timestamp price amount amount_f status eth_amount 0 2018-11-30 13:48:00 0.00348016 10 0 cancelled 0.000000 1 2018-11-30 13:48:00 0.00350065 10 0 cancelled 0.000000 2 2018-11-30 13:50:00 0.00348021 10 0 cancelled 0.000000 3 2018-11-30 13:50:00 0.00350064 10 0 cancelled 0.000000 4 2018-11-30 13:51:00 0.00348054 10 0 cancelled 0.000000 5 2018-11-30 13:51:00 0.00349873 10 0 cancelled 0.000000 6 2018-11-30 13:52:00 0.00348094 10 10 filled 0.034809 7 2018-11-30 13:52:00 0.00349692 10 0 cancelled 0.000000 

De hecho, lo que necesitaría es modificar el estado de colmun en función de los valores de la amount columna y amount . Sería una statement if como sigue:

¿Cómo podría hacer esto?

Puede usar np.select para esto, lo que le permite seleccionar de una lista de valores (lista de choicelist ) según los resultados de una lista de condiciones:

 c1 = df.amount == df.amount_f c2 = df.amount_f == 0 df.loc[:, 'status'] = np.select(condlist=[c1, c2], choicelist=['filled', 'cancelled'], default='partially_filled') timestamp price amount amount_f status eth_amount 0 2018-11-30 13:48:00 0.003480 10 0 cancelled 0.000000 1 2018-11-30 13:48:00 0.003501 10 0 cancelled 0.000000 2 2018-11-30 13:50:00 0.003480 10 0 cancelled 0.000000 3 2018-11-30 13:50:00 0.003501 10 0 cancelled 0.000000 4 2018-11-30 13:51:00 0.003481 10 0 cancelled 0.000000 5 2018-11-30 13:51:00 0.003499 10 0 cancelled 0.000000 6 2018-11-30 13:52:00 0.003481 10 10 filled 0.034809 7 2018-11-30 13:52:00 0.003497 10 0 cancelled 0.000000