Python | Панды Series.apply ()

Опубликовано: 27 Марта, 2022

Серия Pandas - это одномерный массив ndarray с метками осей. Этикетки не обязательно должны быть уникальными, но должны быть хешируемого типа. Объект поддерживает индексирование как на основе целых чисел, так и на основе меток и предоставляет множество методов для выполнения операций, связанных с индексом.

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)

Выход :

 Город 1 Нью-Йорк
Сити 2 Чикаго
Сити 3 Торонто
City 4 Лиссабон
Сити 5 Рио
dtype: объект

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)

Выход :

 Город 1 Нью-Йорк
Сити 2 Чикаго
Сити 3 Торонто
City 4 Лиссабон
City 5 Монреаль
dtype: объект

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)

Выход :

 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
Частота: 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)

Выход :

 2010-12-31 08:45:00 Ложь
2011-12-31 08:45:00 Ложь
2012-12-31 08:45:00 Ложь
2013-12-31 08:45:00 Ложь
2014-12-31 08:45:00 Верно
2015-12-31 08:45:00 Ложь
2016-12-31 08:45:00 Верно
2017-12-31 08:45:00 Ложь
2018-12-31 08:45:00 Ложь
2019-12-31 08:45:00 Верно
2020-12-31 08:45:00 Ложь
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.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.