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’.
# importing pandas as pd import pandas as pd # Creating the Series sr = pd.Series([ 'New York' , 'Chicago' , 'Toronto' , 'Lisbon' , 'Rio' ]) # Create the Index index_ = [ 'City 1' , 'City 2' , 'City 3' , 'City 4' , 'City 5' ] # set the index sr.index = index_ # Print the series 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’.
# change 'Rio' to 'Montreal' # we have used a lambda function result = sr. apply ( lambda x : 'Montreal' if x = = 'Rio' else x ) # Print the result 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.
# importing pandas as pd import pandas as pd # Creating the Series sr = pd.Series([ 11 , 21 , 8 , 18 , 65 , 18 , 32 , 10 , 5 , 32 , None ]) # Create the Index # apply yearly frequency index_ = pd.date_range( '2010-10-09 08:45' , periods = 11 , freq = 'Y' ) # set the index sr.index = index_ # Print the series 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.
# return True if greater than 30 # else return False result = sr. apply ( lambda x : True if x> 30 else False ) # Print the result 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.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.