pandas.Series.apply#

Series.apply(функция, convert_dtype=, args=(), *, by_row='compat', **kwargs)[источник]#

Вызвать функцию для значений Series.

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

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

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

convert_dtypebool, по умолчанию True

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

Устарело с версии 2.1.0: convert_dtype было устаревшим. Сделайте ser.astype(object).apply() вместо этого, если вы хотите convert_dtype=False.

argsкортеж

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

by_rowFalse или “compat”, по умолчанию “compat”

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