Python | Pandas Series.apply ()

NumPy | Python Methods and Functions

Series.apply() Pandas Series.apply() calls the passed function for each element of the given object series.

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 () to change the title cities to "Montreal" if the city is "Rio".

# import pandas as pd < / code>

import pandas as pd

  
# Create series

sr = pd.Series ([ `New York` , `Chicago` , ` Toronto` , `Lisbon` , ` Rio ` ])

  
# Create Index

index_ = [ `City 1` , ` City 2` , `City 3` , `City 4` , ` City 5`

 
# set index

sr.index = index_

 
# Print series

print (sr)

Output:

 City 1 New York City 2 Chicago City 3 Toronto City 4 Lisbon City 5 Rio dtype: object  

We will now use Series.apply () to change the city name to Montreal if it is Rio.

# change & # 39; Rio & # 39; on & # 39; Montreal & # 39;
# we used a lambda function

result = sr. apply ( lambda x: ` Montreal` if x = = `Rio` else x)

 
# Print 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 from the output, Series.apply () < / code> successfully changed the city name to Montreal.

Example # 2: Use Series.apply () to return True if the value is in this series object is greater than 30, otherwise it returns False.

# import pandas as pd

import pandas as pd

  
# Create series

sr = pd.Series ([ 11 , 21 , 8 , 18 , 65 , 18 , 32 , 10 , 5 , 32 , None ])

 
# Create index
# apply annual rate

index_ = pd.date_range ( `2010-10-09 08:45` , periods = 11 , freq = `Y` )

 
# set index

sr.index < code class = "keyword"> = index_

 
# Print 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 () to return True if the value in this series object is greater than 30, otherwise False is returned.

# return True if more than 30
# still return False

result = sr. apply ( lambda x: True if x & gt; 30 else False )

 
# Print 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, Series.apply () successfully returned an array representation for the given series object.





Get Solution for free from DataCamp guru