Aplicar la función Lambda a Pandas DataFrame
- función lambda
-
Aplicación de la función Lambda en una sola columna usando el método
DataFrame.assign()
-
Aplicación de la función Lambda en varias columnas mediante el método
DataFrame.assign()
-
Aplicación de la función Lambda en una sola fila usando el método
DataFrame.apply()
- Filtrado de datos mediante la aplicación de la función Lambda
-
Use la función
map()
aplicando la función Lambda -
Use la declaración
if-else
aplicando la función Lambda - Conclusión
La función lambda
resuelve varios problemas de ciencia de datos en Pandas python. Podemos aplicar la función lambda tanto en filas como en columnas en el DataFrame
de pandas.
Exploraremos en este artículo cómo aplicar las funciones lambda a pandas DataFrame
.
Hay varias aplicaciones de la función lambda en pandas DataFrame
, como filter()
, map()
y sentencias condicionales
que explicaremos con la ayuda de algunos ejemplos en este artículo.
función lambda
La función Lambda contiene una sola expresión.
La función Lambda
es una función pequeña que también se puede usar como una función anónima, lo que significa que no requiere ningún nombre. La función lambda
es útil para resolver pequeños problemas con menos código.
La siguiente sintaxis se usa para aplicar una función lambda en pandas DataFrame
:
dataframe.apply(lambda x: x + 2)
Aplicación de la función Lambda en una sola columna usando el método DataFrame.assign()
El método dataframe.assign()
aplica la función Lambda en una sola columna. Tomemos un ejemplo.
En el siguiente ejemplo, hemos aplicado una función lambda en la columna Students Marks
. Después de aplicar la función Lambda, los porcentajes de los estudiantes se calculan y almacenan en una nueva columna Porcentaje
.
Consulte la siguiente implementación para aplicar una función lambda en una sola columna en el DataFrame
de Pandas.
Código de ejemplo:
import pandas as pd
# initialization of list
students_record = [
["Samreena", 900],
["Mehwish", 750],
["Asif", 895],
["Mirha", 800],
["Affan", 850],
["Raees", 950],
]
# pandas dataframe creation
dataframe = pd.DataFrame(students_record, columns=["Student Names", "Student Marks"])
# using Lambda function
dataframe1 = dataframe.assign(Percentage=lambda x: (x["Student Marks"] / 1000 * 100))
# display dataframe
print(dataframe1)
Producción :
Student Names Student Marks Percentage
0 Samreena 900 90.0
1 Mehwish 750 75.0
2 Asif 895 89.5
3 Mirha 800 80.0
4 Affan 850 85.0
5 Raees 950 95.0
Aplicación de la función Lambda en varias columnas mediante el método DataFrame.assign()
También podemos aplicar la función Lambda en múltiples columnas usando el método dataframe.assign()
en Pandas DataFrame
.
Por ejemplo, tenemos cuatro columnas “Nombres de los estudiantes”, “Computadora”, “Matemáticas” y “Física”. Aplicamos una función Lambda en varias columnas de materias como Informática
, Math
y Física
para calcular las notas obtenidas almacenadas en la columna Marcas_Obtenidas
.
Implemente el siguiente ejemplo.
Código de ejemplo:
import pandas as pd
# nested list initialization
values_list = [
["Samreena", 85, 75, 100],
["Mehwish", 90, 75, 90],
["Asif", 95, 82, 80],
["Mirha", 75, 88, 68],
["Affan", 80, 63, 70],
["Raees", 91, 64, 90],
]
# pandas dataframe creation
df = pd.DataFrame(values_list, columns=["Student Names", "Computer", "Math", "Physics"])
# applying Lambda function
dataframe = df.assign(
Marks_Obtained=lambda x: (x["Computer"] + x["Math"] + x["Physics"])
)
# display dataframe
print(dataframe)
Producción :
Student Names Computer Math Physics Marks_Obtained
0 Samreena 85 75 100 260
1 Mehwish 90 75 90 255
2 Asif 95 82 80 257
3 Mirha 75 88 68 231
4 Affan 80 63 70 213
5 Raees 91 64 90 245
Aplicación de la función Lambda en una sola fila usando el método DataFrame.apply()
El método dataframe.apply()
aplica la función Lambda en una sola fila.
Por ejemplo, aplicamos la función lambda a una sola fila axis=1
. Usando la función lambda, incrementamos el Ingreso mensual
de cada persona en 1000.
Código de ejemplo:
import pandas as pd
df = pd.DataFrame(
{
"ID": [1, 2, 3, 4, 5],
"Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
"Age": [20, 25, 15, 10, 30],
"Monthly Income": [4000, 6000, 5000, 2000, 8000],
}
)
df["Monthly Income"] = df.apply(lambda x: x["Monthly Income"] + 1000, axis=1)
print(df)
Producción :
ID Names Age Monthly Income
0 1 Samreena 20 5000
1 2 Asif 25 7000
2 3 Mirha 15 6000
3 4 Affan 10 3000
4 5 Mahwish 30 9000
Filtrado de datos mediante la aplicación de la función Lambda
También podemos filtrar los datos deseados aplicando la función Lambda.
La función filter()
toma series pandas y una función lambda. La función Lambda se aplica a la serie pandas que devuelve los resultados específicos después de filtrar la serie dada.
En el siguiente ejemplo, hemos aplicado la función lambda en la columna Edad
y filtrado la edad de las personas menores de 25 años.
Código de ejemplo:
import pandas as pd
df = pd.DataFrame(
{
"ID": [1, 2, 3, 4, 5],
"Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
"Age": [20, 25, 15, 10, 30],
"Monthly Income": [4000, 6000, 5000, 2000, 8000],
}
)
print(list(filter(lambda x: x < 25, df["Age"])))
Producción :
[20, 15, 10]
Use la función map()
aplicando la función Lambda
Podemos usar las funciones map()
y lambda.
La función lambda se aplica a la serie para mapear la serie en función de la correspondencia de entrada. Esta función es útil para sustituir o sustituir una serie por otros valores.
Cuando usamos la función map()
, el tamaño de entrada será igual al tamaño de salida. Para comprender el concepto de la función map()
, consulte la siguiente implementación del código fuente.
Código de ejemplo:
import pandas as pd
df = pd.DataFrame(
{
"ID": [1, 2, 3, 4, 5],
"Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
"Age": [20, 25, 15, 10, 30],
"Monthly Income": [4000, 6000, 5000, 2000, 8000],
}
)
df["Monthly Income"] = list(map(lambda x: int(x + x * 0.5), df["Monthly Income"]))
print(df)
Producción :
ID Names Age Monthly Income
0 1 Samreena 20 6000
1 2 Asif 25 9000
2 3 Mirha 15 7500
3 4 Affan 10 3000
4 5 Mahwish 30 12000
Use la declaración if-else
aplicando la función Lambda
También podemos aplicar las declaraciones condicionales en pandas dataframes
usando la función lambda.
Usamos la declaración condicional dentro de la función lambda en el siguiente ejemplo. Aplicamos la condición en la columna Ingresos mensuales
.
Si el ingreso mensual es mayor e igual a 5000, agregue Estable
dentro de la columna Categoría
; de lo contrario, agregue Inestable
.
Código de ejemplo:
import pandas as pd
df = pd.DataFrame(
{
"ID": [1, 2, 3, 4, 5],
"Names": ["Samreena", "Asif", "Mirha", "Affan", "Mahwish"],
"Age": [20, 25, 15, 10, 30],
"Monthly Income": [4000, 6000, 5000, 2000, 8000],
}
)
df["Category"] = df["Monthly Income"].apply(
lambda x: "Stable" if x >= 5000 else "UnStable"
)
print(df)
Producción :
ID Names Age Monthly Income Category
0 1 Samreena 20 4000 UnStable
1 2 Asif 25 6000 Stable
2 3 Mirha 15 5000 Stable
3 4 Affan 10 2000 UnStable
4 5 Mahwish 30 8000 Stable
Conclusión
Implementamos varios métodos para aplicar la función Lambda en el DataFrame
de Pandas. Hemos visto cómo aplicar la función lambda en filas y columnas usando los métodos dataframe.assign()
y dataframe.apply()
.
Demostramos las diferentes aplicaciones de la función lambda en la serie DataFrame
de pandas, como la función filter()
, la función map()
, declaraciones condicionales y más.
Artículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma