Spec-Zone.ru › pandas 2

pandas.Series.apply

Series.apply(func, convert_dtype=_NoDefault.no_default, args=(), *, by_row='compat', **kwargs)[source]

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

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

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

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

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

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

Устарело начиная с версии 2.1.0: convert_dtype устарело. Используйте ser.astype(object).apply() вместо этого, если вам нужен convert_dtype=False.

args:кортеж

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

by_row:False или “compat”, по умолчанию “compat”

Если "compat" и func является вызываемой функцией, func будет передаваться каждому элементу Series, как Series.map. Если func является списком или словарем вызываемых функций, сначала будет попытка перевести каждую функцию в методы pandas. Если это не сработает, будет выполнена попытка повторного вызова apply с by_row="compat" и, если это не удастся, будет повторно вызвано apply с by_row=False (обратная совместимость). Если False, func будет передаваться всей Series сразу.

by_row не влияет, когда func — строка.

Новое в версии 2.1.0.

**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/2.2.2/reference/api/pandas.Series.apply.html

Spec-Zone.ru

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