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.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
27 Feb, 2019
Like Article
Save Article