El método where

De forma semejante a las series, el método de los dataframes where filtra los valores contenidos en el dataframe de forma que solo los que cumplan cierta condición se mantengan. El resto de valores son sustituidos por un valor que, por defecto, es NaN.

Por ejemplo, partimos del siguiente dataframe:

df = pd.DataFrame(np.arange(12).reshape(-1, 3), columns=["A", "B", "C"])
df

Datos de partida

Si ahora queremos filtrar los valores múltiplos de 2, por ejemplo, podemos hacerlo de la siguiente forma:

df.where(df % 2 == 0)

Dataframe filtrado

Todos aquellos valores que no son múltiplo de 2 son sustituidos por NaN. Si, por ejemplo, quisiéramos cambiar de signo a los valores que no cumplen la condición impuesta, lo haríamos así:

df.where(df % 2 == 0, -df)

Dataframe filtrado especificando el valor de reemplazo