Reemplace los valores donde la condición sea Verdadera.
- Parámetros
-
-
cond : bool Series / DataFrame, tipo matriz o invocable
-
Dónde cond es Falso, mantenga el valor original. Donde True, reemplace con el valor correspondiente de otro. Si cond es invocable, se calcula en Series / DataFrame y debe devolver Boolean Series / DataFrame o matriz. El invocable no debe cambiar la serie de entrada / DataFrame (aunque los pandas no lo marcan).
-
otro : escalar, Series / DataFrame o invocable
-
Entradas donde cond es Verdadero se reemplazan con el valor correspondiente de otro. Si otro es invocable, se calcula en Series / DataFrame y debe devolver escalar o Series / DataFrame. El invocable no debe cambiar la serie de entrada / DataFrame (aunque los pandas no lo marcan).
-
en su lugar : bool, predeterminado Falso
-
Ya sea para realizar la operación en el lugar de los datos.
-
eje : int, predeterminado Ninguno
-
Eje de alineación si es necesario.
-
nivel : int, predeterminado Ninguno
-
Nivel de alineación si es necesario.
-
errores : str, {‘subir’, ‘ignorar’}, ‘subir’ por defecto
-
Tenga en cuenta que actualmente este parámetro no afectará a los resultados y siempre obligará a un dtype adecuado.
-
‘subir’: permite que se generen excepciones.
-
‘ignorar’: suprime las excepciones. En caso de error, devuelva el objeto original.
-
try_cast : bool, predeterminado Falso
-
Intente devolver el resultado al tipo de entrada (si es posible).
- Devoluciones
-
- Mismo tipo que la persona que llama o Ninguno si
inplace=True
.
Ver también
DataFrame.where()
-
Devuelve un objeto de la misma forma que yo.
Notas
El método de la máscara es una aplicación del idioma si-entonces. Para cada elemento en el DataFrame que llama, si cond
es False
se utiliza el elemento; de lo contrario, el elemento correspondiente del DataFrame other
se utiliza.
La firma de DataFrame.where()
difiere de numpy.where()
. Aproximadamente df1.where(m, df2)
es equivalente a np.where(m, df1, df2)
.
Para obtener más detalles y ejemplos, consulte la mask
documentación en indexación.
Ejemplos de
>>> s = pd.Series(range(5))
>>> s.where(s > 0)
0 NaN
1 1.0
2 2.0
3 3.0
4 4.0
dtype: float64
>>> s.mask(s > 0)
0 0.0
1 NaN
2 NaN
3 NaN
4 NaN
dtype: float64
>>> s.where(s > 1, 10)
0 10
1 10
2 2
3 3
4 4
dtype: int64
>>> s.mask(s > 1, 10)
0 0
1 1
2 10
3 10
4 10
dtype: int64
>>> df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['A', 'B'])
>>> df
A B
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
>>> m = df % 3 == 0
>>> df.where(m, -df)
A B
0 0 -1
1 -2 3
2 -4 -5
3 6 -7
4 -8 9
>>> df.where(m, -df) == np.where(m, df, -df)
A B
0 True True
1 True True
2 True True
3 True True
4 True True
>>> df.where(m, -df) == df.mask(~m, -df)
A B
0 True True
1 True True
2 True True
3 True True
4 True True