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