Pandas series is a One-dimensional ndarray with axis labels. The labels need not be unique but must be a hashable type. The object supports both integer- and label-based indexing and provides a host of methods for performing operations involving the index.
Pandas Series.apply()
function invoke the passed function on each element of the given series object.
Syntax: Series.apply(func, convert_dtype=True, args=(), **kwds)
Parameter :
func : Python function or NumPy ufunc to apply.
convert_dtype : Try to find better dtype for elementwise function results.
args : Positional arguments passed to func after the series value.
**kwds : Additional keyword arguments passed to func.
Returns : Series
Example #1: Use Series.apply()
function to change the city name to ‘Montreal’ if the city is ‘Rio’.
import pandas as pd
sr = pd.Series([ 'New York' , 'Chicago' , 'Toronto' , 'Lisbon' , 'Rio' ])
index_ = [ 'City 1' , 'City 2' , 'City 3' , 'City 4' , 'City 5' ]
sr.index = index_
print (sr)
|
Output :
City 1 New York
City 2 Chicago
City 3 Toronto
City 4 Lisbon
City 5 Rio
dtype: object
Now we will use Series.apply()
function to change the city name to ‘Montreal’ if the city is ‘Rio’.
result = sr. apply ( lambda x : 'Montreal' if x = = 'Rio' else x )
print (result)
|
Output :
City 1 New York
City 2 Chicago
City 3 Toronto
City 4 Lisbon
City 5 Montreal
dtype: object
As we can see in the output, the Series.apply()
function has successfully changed the name of the city to ‘Montreal’.
Example #2 : Use Series.apply()
function to return True if the value in the given series object is greater than 30 else return False.
import pandas as pd
sr = pd.Series([ 11 , 21 , 8 , 18 , 65 , 18 , 32 , 10 , 5 , 32 , None ])
index_ = pd.date_range( '2010-10-09 08:45' , periods = 11 , freq = 'Y' )
sr.index = index_
print (sr)
|
Output :
2010-12-31 08:45:00 11.0
2011-12-31 08:45:00 21.0
2012-12-31 08:45:00 8.0
2013-12-31 08:45:00 18.0
2014-12-31 08:45:00 65.0
2015-12-31 08:45:00 18.0
2016-12-31 08:45:00 32.0
2017-12-31 08:45:00 10.0
2018-12-31 08:45:00 5.0
2019-12-31 08:45:00 32.0
2020-12-31 08:45:00 NaN
Freq: A-DEC, dtype: float64
Now we will use Series.apply()
function to return True if a value in the given series object is greater than 30 else return False.
result = sr. apply ( lambda x : True if x> 30 else False )
print (result)
|
Output :
2010-12-31 08:45:00 False
2011-12-31 08:45:00 False
2012-12-31 08:45:00 False
2013-12-31 08:45:00 False
2014-12-31 08:45:00 True
2015-12-31 08:45:00 False
2016-12-31 08:45:00 True
2017-12-31 08:45:00 False
2018-12-31 08:45:00 False
2019-12-31 08:45:00 True
2020-12-31 08:45:00 False
Freq: A-DEC, dtype: bool
As we can see in the output, the Series.apply()
function has successfully returned the numpy array representation of the given series object.