Python | Pandas Series.apply()
Last Updated :
27 Feb, 2019
Improve
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
Python3
Output :
Python3 1==
Output :
Python3
Output :
Python3 1==
Output :
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 : SeriesExample #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)
City 1 New York City 2 Chicago City 3 Toronto City 4 Lisbon City 5 Rio dtype: objectNow 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)
City 1 New York City 2 Chicago City 3 Toronto City 4 Lisbon City 5 Montreal dtype: objectAs 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)
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: float64Now 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)
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: boolAs we can see in the output, the
Series.apply()
function has successfully returned the numpy array representation of the given series object.