Для этого можно использовать np.select
, что позволяет выбирать из списка значений (choicelist
) в зависимости от результатов списка условий:
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