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