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