Aplicar la función Lambda a Pandas DataFrame

Samreena Aslam 30 enero 2023
  1. función lambda
  2. Aplicación de la función Lambda en una sola columna usando el método DataFrame.assign()
  3. Aplicación de la función Lambda en varias columnas mediante el método DataFrame.assign()
  4. Aplicación de la función Lambda en una sola fila usando el método DataFrame.apply()
  5. Filtrado de datos mediante la aplicación de la función Lambda
  6. Use la función map() aplicando la función Lambda
  7. Use la declaración if-else aplicando la función Lambda
  8. Conclusión
Aplicar la función Lambda a Pandas DataFrame

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