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
Si ahora queremos filtrar los valores múltiplos de 2, por ejemplo, podemos hacerlo de la siguiente forma:
df.where(df % 2 == 0)
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)