Pandas DataFrame DataFrame.where() Función

Minahil Noor 30 enero 2023
  1. La sintaxis de pandas.DataFrame.where()
  2. Códigos de ejemplo: DataFrame.where()
  3. Códigos de ejemplo: DataFrame.where() para especificar un valor
  4. Códigos de ejemplo: DataFrame.where() para usar múltiples condiciones
Pandas DataFrame DataFrame.where() Función

La función Python Pandas DataFrame.where() acepta una condición como parámetro y produce resultados en consecuencia. Comprueba la condición para cada valor del DataFrame y selecciona los valores que aceptan la condición. Su funcionalidad es similar a la declaración if-else. El valor que no acepta la condición es reemplazado por un valor NaN por defecto.

La sintaxis de pandas.DataFrame.where()

DataFrame.where(
    cond,
    other=NaN,
    inplace=False,
    axis=None,
    level=None,
    errors="raise",
    try_cast=False,
)

Parámetros

Esta función tiene varios parámetros. Los valores por defecto de todos los parámetros se mencionan más arriba.

cond Es una Series o DataFrame booleana, una estructura de tipo array o, una llamada. Representa la condición/condiciones para comprobar cada valor del DataFrame. Si la condición es True, entonces el valor original no es reemplazado. De lo contrario, es reemplazado por un valor NaN.
other Es un escalar, Series/DataFrame, o un llamable. Representa el valor que se colocará para el valor original si la condición es False.
inplace Es un valor booleano. Habla de la operación sobre los datos. Si es True, hace los cambios por sí mismo.
axis Es un valor entero. Indica el eje de trabajo, ya sea filas o columnas.
level Es un valor entero. Dice sobre el nivel.
errors Es una cuerda. Cuenta los errores. Acepta dos opciones: raise o ignore. Si su valor es raise entonces permite que las excepciones sean aumentadas. Si su valor es ignore, entonces ignora las excepciones y devuelve el objeto original si hay un error.
try_cast Es un valor booleano. Echa la salida de la función al tipo de entrada original si es posible.

Retorna

Devuelve el DataFrame cambiado dependiendo de la condición.

Códigos de ejemplo: DataFrame.where()

Aprenderemos más sobre esta función implementándola en el siguiente ejemplo de código.

import pandas as pd

dataframe=pd.DataFrame({
                        'A': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95,
                            5: 45,
                            6: 67,
                            7: 12,
                            8: 23,
                            9: 50},
                        'B': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45,
                            5: 35,
                            6: 74,
                            7: 52,
                            8: 93,
                            9: 18}
                        })

print(dataframe)

El ejemplo DataFrame es,

     A   B
0   60  90
1  100  75
2   80  82
3   78  64
4   95  45
5   45  35
6   67  74
7   12  52
8   23  93
9   50  18

Esta función tiene un parámetro obligatorio, es decir, cond.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where(dataframe > 50)
print(dataframe1)

Producción:

       A     B
0   60.0  90.0
1  100.0  75.0
2   80.0  82.0
3   78.0  64.0
4   95.0   NaN
5    NaN   NaN
6   67.0  74.0
7    NaN  52.0
8    NaN  93.0
9    NaN   NaN

Los valores que no son mayores de 50, es decir, que no satisfacen la condición, son reemplazados por un valor NaN.

Códigos de ejemplo: DataFrame.where() para especificar un valor

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where(dataframe > 50, other=0)
print(dataframe1)

Producción:

     A   B
0   60  90
1  100  75
2   80  82
3   78  64
4   95   0
5    0   0
6   67  74
7    0  52
8    0  93
9    0   0

Aquí, los valores que no cumplen la condición son reemplazados por un valor definido por el usuario.

Códigos de ejemplo: DataFrame.where() para usar múltiples condiciones

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where((dataframe == 80) | (dataframe < 50), other=0)
print(dataframe1)

Producción:

    A   B
0   0   0
1   0   0
2  80   0
3   0   0
4   0  45
5  45  35
6   0   0
7  12   0
8  23   0
9   0  18

El DataFrame devuelto contiene los valores que cumplen ambas condiciones.

Artículo relacionado - Pandas DataFrame