Applying Lambda functions to Pandas Dataframe - GeeksforGeeks

20 Apr, 2022
In Pandas, we have the freedom to add different functions whenever needed like lambda function, sort function, etc. We can apply a lambda function to both the columns and rows of the Pandas data frame.
Syntax: lambda arguments: expression
An anonymous function which we can pass in instantly without defining a name or any thing like a full traditional function.
Example 1: Applying lambda function to single column using Dataframe.assign()
Python3
# importing pandas libraryimport pandas as pd  # creating and initializing a listvalues= [['Rohan',455],['Elvish',250],['Deepak',495],         ['Soni',400],['Radhika',350],['Vansh',450]] # creating a pandas dataframedf = 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 framedf
Output :
In the above example, the lambda function is applied to the ‘Total_Marks’ column and a new column ‘Percentage’ is formed with the help of it.
Example 2: Applying lambda function to multiple columns using Dataframe.assign()
Python3
# importing pandas libraryimport pandas as pd # creating and initializing a nested listvalues_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 dataframedf = 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 dataframedf
Output :
In the above example, lambda function is applied to 3 columns i.e ‘Field_1’, ‘Field_2’, and ‘Field_3’.
Example 3: Applying lambda function to single row using Dataframe.apply()
Python3
# importing pandas and numpy librariesimport pandas as pdimport numpy as np # creating and initializing a nested listvalues_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 dataframedf = 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 dataframedf
  
Output :
 
 
In the above example, a lambda function is applied to row starting with ‘d’ and hence square all values corresponds to it.
 
Example 4: Applying lambda function to multiple rows using Dataframe.apply()
 
Python3
# importing pandas and numpylibrariesimport pandas as pdimport numpy as np # creating and initializing a nested listvalues_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 dataframedf = 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' onlydf = df.apply(lambda x: np.square(x) if x.name in [              'a', 'e', 'g'] else x, axis=1) # printing dataframedf
  
Output :
 
 
In the above example, a lambda function is applied to 3 rows starting with ‘a’, ‘e’, and ‘g’.
 
Example 5: Applying the lambda function simultaneously to multiple columns and rows
 
Python3
# importing pandas and numpylibrariesimport pandas as pdimport numpy as np # creating and initializing a nested listvalues_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 dataframedf = 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' onlydf = 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 dataframedf
Output :
In this example, a lambda function is applied to two rows and three columns. 
sanjaysdev0901
rkbhola5
Python pandas-dataFrame
Python Pandas-exercise
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
*args and **kwargs in Python
Create a Pandas DataFrame from Lists
Convert integer to string in Python
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
sum() function in Python