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 = 'neveropen' 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 = 'neveropen' 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 = 'neveropen' 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 = 'neveropen' 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. |