Pandas’ applymap() method apply a function to a Dataframe elementwise. This method applies a function that accepts and returns a scalar to every element of a DataFrame.
The main difference between apply() and applymap() method is:
- Pandas’ apply() method work on row/column basis of a DataFrame.
- Pandas’ applymap() method work element-wise on a DataFrame.
Syntax:
DataFrame.
applymap
(self, func)
Parameters:
func - Python function, returns a single value from a single value.
Let’s see the examples:
In [1]: # Define the DataFrame import pandas as pd df = pd.DataFrame([['Mark','Johnathn'], ['Juli','Alexa']], columns=list('AB')) df Out[1]: A B 0 Mark Johnathn 1 Juli Alexa
Find the length of each element of the DataFrame.
In [2]: df.applymap(lambda x: len(x)) Out[2]: A B 0 4 8 1 4 5 # apply() function count the number of element in specified axis. In [3]: df.apply(lambda x: len(x),axis=0) Out[3]: A 2 B 2 dtype: int64
When to use apply()?
If you want to work with the entire axis either row/column, use apply() function. Let’s see the example of subtracting each value from the max value of its column.
In [4]: df = pd.DataFrame([[1,2], [6, 1], [9,5],[1 ,4]], columns=list('AB')) df Out[4]: A B 0 1 2 1 6 1 2 9 5 3 1 4 In [5]: df.apply(lambda x: x.max()-x) Out[5]: A B 0 8 3 1 3 4 2 0 0 3 8 1
when to use applymap()?
If you want to perform some operation on element-wise, use applymap() function.
In [6]: df Out[6]: A B 0 1 2 1 6 1 2 9 5 3 1 4 In [7]: df.applymap(lambda x: x*2) Out[7]: A B 0 2 4 1 12 2 2 18 10 3 2 8
. . .