pandas.Series.apply
-
Series.apply(func, convert_dtype=True, args=(), **kwds)[source] -
Вызов функции для значений Series. Может быть ufunc (функция NumPy, которая применяется ко всей Series) или Python-функцией, которая работает только со значениями по одному.
Параметры: func : функция
convert_dtype : boolean, по умолчанию True
Попытка найти лучший тип данных для результатов функции для каждого элемента. Если False, оставьте как dtype=object
args : кортеж
Позиционные аргументы для передачи функции в дополнение к значению
Дополнительные ключевые аргументы будут переданы как ключевые аргументы функции
Возвращает: y : Series или DataFrame, если func возвращает Series
См. также
-
Series.map - Для операций по элементам
-
Series.agg - только выполнять операции агрегирования
-
Series.transform - только выполнять операции преобразования
Примеры
Создайте Series со типичными летними температурами для каждого города.
>>> import pandas as pd >>> import numpy as np >>> series = pd.Series([20, 21, 12], index=['London', ... 'New York','Helsinki']) >>> series London 20 New York 21 Helsinki 12 dtype: int64
Возведите значения в квадрат, определив функцию и передав её как аргумент в
apply().>>> def square(x): ... return x**2 >>> series.apply(square) London 400 New York 441 Helsinki 144 dtype: int64
Возведите значения в квадрат, передав анонимную функцию как аргумент в
apply().>>> series.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
>>> series.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
>>> series.apply(add_custom_values, june=30, july=20, august=25) London 95 New York 96 Helsinki 87 dtype: int64
Используйте функцию из библиотеки Numpy.
>>> series.apply(np.log) London 2.995732 New York 3.044522 Helsinki 2.484907 dtype: float64
-
© 2008–2012, 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/0.22.0/generated/pandas.Series.apply.html