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 pdimport pandas as pd # Creating the Seriessr = pd.Series(['New York', 'Chicago', 'Toronto', 'Lisbon', 'Rio']) # Create the Indexindex_ = ['City 1', 'City 2', 'City 3', 'City 4', 'City 5'] # set the indexsr.index = index_ # Print the seriesprint(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 functionresult = sr.apply(lambda x : 'Montreal' if x =='Rio' else x ) # Print the resultprint(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 pdimport pandas as pd # Creating the Seriessr = pd.Series([11, 21, 8, 18, 65, 18, 32, 10, 5, 32, None]) # Create the Index# apply yearly frequencyindex_ = pd.date_range('2010-10-09 08:45', periods = 11, freq ='Y') # set the indexsr.index = index_ # Print the seriesprint(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 Falseresult = sr.apply(lambda x : True if x>30 else False) # Print the resultprint(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.


