¿Cómo filtrar en NaN (pandas)?

Tengo un dataframe de pandas (df), y quiero hacer algo como:

newdf = df[(df.var1 == 'a') & (df.var2 == NaN)] 

He intentado reemplazar NaN con np.NaN , o 'NaN' o 'nan' , etc., pero nada se evalúa como Verdadero. No hay pd.NaN .

Puedo usar df.fillna(np.nan) antes de evaluar la expresión anterior, pero me parece que es un error y me pregunto si interferirá con otras operaciones de pandas que dependen de la capacidad de identificar los NaN de formato de pandas más adelante.

Tengo la sensación de que debería haber una respuesta fácil a esta pregunta, pero de alguna manera me ha eludido. Cualquier consejo es apreciado. Gracias.

Esto no funciona porque NaN no es igual a nada, incluso NaN . Utilice pd.isnull(df.var2) lugar.

La más simple de todas las soluciones:

 filtered_df = df[df['var2'].isnull()] 

Esto filtra y le da filas que solo tienen valores de NaN en la columna ‘var2’.

Pandas usa el valor NaN de numpy . Use numpy.isnan para obtener un vector booleano de una serie de pandas.