Difference between map, applymap and apply methods in Pandas
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 = 'w3wiki' 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 = 'w3wiki' 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 = 'w3wiki' 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 = 'w3wiki' 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 Series | Defined only in Dataframe | Defined in both Series and DataFrame |
Accepts dictionary, Series, or callable | Accept callables only | Accept callables only |
Series.map() Operate on one element at time | DataFrame.applymap() Operate on one element at a time | operates 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. |
Contact Us