Good One, предоставленный @Derlin, другой способ, который я пробовал, - это использовать fillna()
заполнить NaN
с -1 и проиндексировать их, как показано ниже:
>>> df[~((df.fillna(-1)['status']==-1)&(df['gender']=='male'))]
Только для справки * оператор 1006 * совпадает с np.logical_not()
из numpy
. Поэтому, если вы используете это: df[np.logical_not((df.fillna(-1)['status']==-1)&(df['gender']=='male'))]
(не забудьте import numpy as np
), означает то же самое.