Spec-Zone.ru › pandas 1

pandas.Series.apply

Series.apply(func, convert_dtype=True, args=(), **kwargs)[source]

Применение функции к значениям Series.

Может быть ufunc (функция NumPy, применяемая ко всей Series) или Python-функция, работающая только со значениями по отдельности.

Параметры
func:функция

Python-функция или NumPy-функция ufunc для применения.

convert_dtype:bool, по умолчанию True

Попытка найти более подходящий тип данных для результатов применения функции к элементам. Если False, оставить тип данных object. Обратите внимание, что тип данных всегда сохраняется для некоторых типов данных расширенных массивов, таких как Categorical.

args:кортеж

Позиционные аргументы, передаваемые функции func после значения серии.

**kwargs

Дополнительные именованные аргументы, передаваемые функции func.

Возвращает
Series или DataFrame

Если функция func возвращает объект Series, результат будет DataFrame.

См. также

Series.map

Для элементных операций.

Series.agg

Только для агрегирующих операций.

Series.transform

Только для преобразующих операций.

Примечания

Функции, которые изменяют переданный объект, могут привести к неожиданному поведению или ошибкам и не поддерживаются. Подробнее см. Изменение с помощью пользовательских функций (UDF).

Примеры

Создаем серию с типичными летними температурами для каждого города.

>>> s = pd.Series([20, 21, 12],
...               index=['London', 'New York', 'Helsinki'])
>>> s
London      20
New York    21
Helsinki    12
dtype: int64

Возводим значения в квадрат, определив функцию и передав её в качестве аргумента к apply().

>>> def square(x):
...     return x ** 2
>>> s.apply(square)
London      400
New York    441
Helsinki    144
dtype: int64

Возводим значения в квадрат, передав анонимную функцию в качестве аргумента к apply().

>>> s.apply(lambda x: x ** 2)
London      400
New York    441
Helsinki    144
dtype: int64

Определяем пользовательскую функцию, которая требует дополнительных позиционных аргументов, и передаём эти дополнительные аргументы с помощью ключевого слова args.

>>> def subtract_custom_value(x, custom_value):
...     return x - custom_value
>>> s.apply(subtract_custom_value, args=(5,))
London      15
New York    16
Helsinki     7
dtype: int64

Определяем пользовательскую функцию, которая принимает именованные аргументы, и передаём эти аргументы в apply.

>>> def add_custom_values(x, **kwargs):
...     for month in kwargs:
...         x += kwargs[month]
...     return x
>>> s.apply(add_custom_values, june=30, july=20, august=25)
London      95
New York    96
Helsinki    87
dtype: int64

Используем функцию из библиотеки Numpy.

>>> s.apply(np.log)
London      2.995732
New York    3.044522
Helsinki    2.484907
dtype: float64

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.Series.apply.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API