Aplicación de funciones Lambda a Pandas Dataframe

En Pandas, tenemos la libertad de agregar diferentes funciones cuando sea necesario, como la función lambda, la función de clasificación, etc. Podemos aplicar una función lambda tanto a las columnas como a las filas del marco de datos de Pandas.

Sintaxis: argumentos lambda: expresión

Una función anónima que podemos pasar instantáneamente sin definir un nombre ni nada parecido a una función tradicional completa.

Ejemplo 1: Aplicar la función lambda a una sola columna usando Dataframe.assign()

Python3

# importing pandas library
import pandas as pd
  
# creating and initializing a list
values= [['Rohan',455],['Elvish',250],['Deepak',495],
         ['Soni',400],['Radhika',350],['Vansh',450]]
 
# creating a pandas dataframe
df = pd.DataFrame(values,columns=['Name','Total_Marks'])
 
# Applying lambda function to find
# percentage of 'Total_Marks' column
# using df.assign()
df = df.assign(Percentage = lambda x: (x['Total_Marks'] /500 * 100))
 
# displaying the data frame
df

Producción :

En el ejemplo anterior, la función lambda se aplica a la columna ‘Total_Marks’ y se forma una nueva columna ‘Porcentaje’ con la ayuda de ella.

Ejemplo 2: Aplicar la función lambda a múltiples columnas usando Dataframe.assign()

Python3

# importing pandas library
import pandas as pd
 
# creating and initializing a nested list
values_list = [[15, 2.5, 100], [20, 4.5, 50], [25, 5.2, 80],
               [45, 5.8, 48], [40, 6.3, 70], [41, 6.4, 90],
               [51, 2.3, 111]]
 
# creating a pandas dataframe
df = pd.DataFrame(values_list, columns=['Field_1', 'Field_2', 'Field_3'])
 
# Applying lambda function to find
# the product of 3 columns using
# df.assign()
df = df.assign(Product=lambda x: (x['Field_1'] * x['Field_2'] * x['Field_3']))
 
# printing dataframe
df

Producción :

En el ejemplo anterior, la función lambda se aplica a 3 columnas, es decir, ‘Field_1’, ‘Field_2’ y ‘Field_3’.

Ejemplo 3 : Aplicar la función lambda a una sola fila usando Dataframe.apply()

Python3

# importing pandas and numpy libraries
import pandas as pd
import numpy as np
 
# creating and initializing a nested list
values_list = [[15, 2.5, 100], [20, 4.5, 50], [25, 5.2, 80],
               [45, 5.8, 48], [40, 6.3, 70], [41, 6.4, 90],
               [51, 2.3, 111]]
 
# creating a pandas dataframe
df = pd.DataFrame(values_list, columns=['Field_1', 'Field_2', 'Field_3'],
                  index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
 
 
# Apply function numpy.square() to square
# the values of one row only i.e. row
# with index name 'd'
df = df.apply(lambda x: np.square(x) if x.name == 'd' else x, axis=1)
 
 
# printing dataframe
df

Producción :

En el ejemplo anterior, se aplica una función lambda a la fila que comienza con ‘d’ y, por lo tanto, le corresponde el cuadrado de todos los valores.

Ejemplo 4: Aplicar la función lambda a múltiples filas usando Dataframe.apply()

Python3

# importing pandas and numpylibraries
import pandas as pd
import numpy as np
 
# creating and initializing a nested list
values_list = [[15, 2.5, 100], [20, 4.5, 50], [25, 5.2, 80],
               [45, 5.8, 48], [40, 6.3, 70], [41, 6.4, 90],
               [51, 2.3, 111]]
 
# creating a pandas dataframe
df = pd.DataFrame(values_list, columns=['Field_1', 'Field_2', 'Field_3'],
                  index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
 
 
# Apply function numpy.square() to square
# the values of 3 rows only i.e. with row
# index name 'a', 'e' and 'g' only
df = df.apply(lambda x: np.square(x) if x.name in [
              'a', 'e', 'g'] else x, axis=1)
 
# printing dataframe
df

Producción :

En el ejemplo anterior, se aplica una función lambda a 3 filas que comienzan con ‘a’, ‘e’ y ‘g’.

Ejemplo 5: aplicar la función lambda simultáneamente a varias columnas y filas

Python3

# importing pandas and numpylibraries
import pandas as pd
import numpy as np
 
# creating and initializing a nested list
values_list = [[1.5, 2.5, 10.0], [2.0, 4.5, 5.0], [2.5, 5.2, 8.0],
               [4.5, 5.8, 4.8], [4.0, 6.3, 70], [4.1, 6.4, 9.0],
               [5.1, 2.3, 11.1]]
 
# creating a pandas dataframe
df = pd.DataFrame(values_list, columns=['Field_1', 'Field_2', 'Field_3'],
                  index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
 
 
# Apply function numpy.square() to square
# the values of 2 rows only i.e. with row
# index name 'b' and 'f' only
df = df.apply(lambda x: np.square(x) if x.name in ['b', 'f'] else x, axis=1)
 
# Applying lambda function to find product of 3 columns
# i.e 'Field_1', 'Field_2' and 'Field_3'
df = df.assign(Product=lambda x: (x['Field_1'] * x['Field_2'] * x['Field_3']))
 
 
# printing dataframe
df

Producción :

En este ejemplo, se aplica una función lambda a dos filas y tres columnas. 

Publicación traducida automáticamente

Artículo escrito por vanshgaur14866 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *