Skip to content
Related Articles

Related Articles

Difference between map, applymap and apply methods in Pandas

View Discussion
Improve Article
Save Article
  • Last Updated : 20 Sep, 2022
View Discussion
Improve Article
Save Article

Pandas library is extensively used for data manipulation and analysis. map(), applymap(), and apply() methods are methods of Pandas library in Python. The type of Output totally depends on the type of function used as an argument with the given method. 

What is Pandas apply() method

The apply() method can be applied both to series and Dataframes where a function can be applied to both series and individual elements based on the type of function provided.

Syntax: s.apply(func, convert_dtype=True, args=())

Pandas DataFrame apply() Method

This method can be used on both a pandas Dataframe and series. The function passed as an argument typically works on rows/columns. The code below illustrates how apply() method works on Pandas Dataframe

Python3




# Importing pandas library with an alias pd
import pandas as pd
 
# Dataframe generation
gfg_string = 'geeksforgeeks'
gfg_list = 5 * [pd.Series(list(gfg_string))]
 
gfg_df = pd.DataFrame(data = gfg_list)
print("Original dataframe:\n" + \
    gfg_df.to_string(index = False,
    header = False), end = '\n\n')
 
# Using apply method for sorting
# rows of characters present in
# the original dataframe
new_gfg_df = gfg_df.apply(lambda x:x.sort_values(), axis = 1)
 
print("Transformed dataframe:\n" + \
    new_gfg_df.to_string(index = False,
            header = False), end = '\n\n')

Output: 

 

Pandas Series apply() Method

The below Code illustrates how to apply() method to the Pandas series

Python3




# Importing pandas library with an alias pd
import pandas as pd
 
# Series generation
gfg_string = 'geeksforgeeks'
gfg_series = pd.Series(list(gfg_string))
print("Original series\n" +
      gfg_series.to_string(index=False,
                           header=False), end='\n\n')
 
# Using apply method for converting characters
# present in the original series
new_gfg_series = gfg_series.apply(str.upper)
print("Transformed series:\n" +
      new_gfg_series.to_string(index=False,
                               header=False), end='\n\n')

Output: 

 

What is Pandas applymap() method

The applymap() method only works on a pandas Dataframe where a function is applied to every element individually. The function passed as an argument typically works on elements of the Dataframe applymap() and is typically used for elementwise operations. 

Python3




# The code below illustrates how applymap
# method works on pandas Dataframe:
# Importing pandas
import pandas as pd
 
# DataFrame generation
gfg_string = 'geeksforgeeks'
gfg_list = 5 * [pd.Series(list(gfg_string))]
gfg_df = pd.DataFrame(data=gfg_list)
 
print("Original dataframe:\n" +
      gfg_df.to_string(index=False,
                       header=False), end='\n\n')
 
# Using applymap method for transforming
# characters into uppercase characters
# present in the original dataframe
new_gfg_df = gfg_df.applymap(str.upper)
print("Transformed dataframe:\n" +
      new_gfg_df.to_string(index=False,
                           header=False), end='\n\n')

Output: 

 

What is Pandas map() method 

The map() method only works on a pandas series where the type of operation to be applied depends on the argument passed as a function, dictionary, or list. This method is generally used to map values from two series having one column the same.  

Python3




# The code below illustrates how the
# map method works on the Pandas series:
# Importing pandas
import pandas as pd
 
# Series generation
gfg_string = 'geeksforgeeks'
gfg_series = pd.Series(list(gfg_string))
print("Original series\n" +
      gfg_series.to_string(index=False,
                           header=False), end='\n\n')
 
# Using apply method for converting characters
# present in the original series
new_gfg_series = gfg_series.map(str.upper)
print("Transformed series:\n" +
      new_gfg_series.to_string(index=False,
                               header=False), end='\n\n')

Output: 

 

Difference between map, applymap and apply in Pandas

map

applymap

apply

Defined only in SeriesDefined only in DataframeDefined in both Series and DataFrame
 Accepts dictionary, Series, or callableAccept callables onlyAccept callables only
Series.map() Operate on one element at timeDataFrame.applymap() Operate on one element at a timeoperates on entire rows or columns at a time for Dataframe, and one at a time for Series.apply
Missing values will be recorded as NaN in the output.Performs better operation than apply().Suited to more complex operations and aggregation.

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!