Aplicar la condición If-Else en un marco de datos de Pandas

Fariba Laiq 21 junio 2023
  1. Utilice DataFrame.loc[] para aplicar la condición if-else en un marco de datos de Pandas en Python
  2. Utilice DataFrame.apply() para aplicar la condición if-else en un marco de datos de Pandas en Python
  3. Use NumPy.select() para aplicar la condición if-else en un marco de datos de Pandas en Python
  4. Use lambda con apply() para aplicar la condición if-else en un marco de datos de Pandas en Python
Aplicar la condición If-Else en un marco de datos de Pandas

Pandas es una biblioteca de análisis de datos de código abierto en Python. Proporciona muchos métodos integrados para realizar operaciones en datos numéricos.

En algunos casos, queremos aplicar las condiciones if-else en un marco de datos de Pandas para filtrar los registros o realizar cálculos de acuerdo con algunas condiciones. Python proporciona muchas formas de usar if-else en un marco de datos de Pandas.

Utilice DataFrame.loc[] para aplicar la condición if-else en un marco de datos de Pandas en Python

[loc[]] es una propiedad del marco de datos de Pandas que se utiliza para seleccionar o filtrar un grupo de filas o columnas. En el siguiente ejemplo, emplearemos esta propiedad para filtrar los registros que cumplen una determinada condición.

Aquí tenemos un marco de datos de Pandas que consta de los datos de los estudiantes. Usando loc[], solo podemos aplicar una sola condición a la vez.

Filtraremos aquellos alumnos que tengan una nota mayor o igual a 60 en la primera condición y asignaremos su resultado como Aprobado en la nueva columna Resultado. Del mismo modo, pondremos Suspenso para el resto de resultados del alumno en otra condición.

Código de ejemplo:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)
df.loc[df["Marks"] >= 60, "Result"] = "Pass"
df.loc[df["Marks"] < 60, "Result"] = "Fail"
display(df)

Producción:

Pandas si usa DataFrame.loc - Salida

Utilice DataFrame.apply() para aplicar la condición if-else en un marco de datos de Pandas en Python

El método apply() utiliza el eje del marco de datos (fila o columna) para aplicar una función. Podemos hacer nuestra función definida que consta de condiciones if-else y aplicarla al marco de datos de Pandas.

Aquí, hemos definido una función asignar_Resultado() y la hemos aplicado a la columna Marcas. La función consta de condiciones if-else que asignan el resultado en función de las Marcas e invocan esto para cada fila de columna.

Código de ejemplo:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)


def assign_Result(marks):
    if marks >= 60:
        result = "Pass"
    else:
        result = "Fail"
    return result


df["Result"] = df["Marks"].apply(assign_Result)
display(df)

Producción:

Pandas si no usa DataFrame.apply () - Salida

Use NumPy.select() para aplicar la condición if-else en un marco de datos de Pandas en Python

Podemos definir múltiples condiciones para una columna en una lista y sus valores correspondientes en otra lista si la condición es Verdadera. El método select() toma la lista de condiciones y su correspondiente lista de valores como argumentos y los asigna a la columna Resultado.

Código de ejemplo:

# Python 3.x
import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)
conditions = [(df["Marks"] >= 60), (df["Marks"] < 60)]
result = ["Pass", "Fail"]
df["Result"] = np.select(conditions, result)
display(df)

Producción:

Pandas si no usa NumPy.select() - Salida

Use lambda con apply() para aplicar la condición if-else en un marco de datos de Pandas en Python

Una lambda es una pequeña función anónima que consta de una sola expresión. Usaremos lambda con apply() en la columna Marcas.

La x contiene las marcas en la expresión lambda. Aplicamos la condición if-else a la x y asignamos el resultado correspondiente en la columna Resultado.

Código de ejemplo:

# Python 3.x
import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)
df["Result"] = df["Marks"].apply(lambda x: "Pass" if x >= 60 else "Fail")
display(df)

Producción:

Pandas si no usa lambda con apply () - Salida

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Pandas Condition