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