Aplicar la condición If-Else en un marco de datos de Pandas
-
Utilice
DataFrame.loc[]
para aplicar la condiciónif-else
en un marco de datos de Pandas en Python -
Utilice
DataFrame.apply()
para aplicar la condiciónif-else
en un marco de datos de Pandas en Python -
Use
NumPy.select()
para aplicar la condiciónif-else
en un marco de datos de Pandas en Python -
Use
lambda
conapply()
para aplicar la condiciónif-else
en un marco de datos de Pandas en Python
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:
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:
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:
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:
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