Spec-Zone.ru › pandas 0.21

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.21.1/generated/pandas.Series.apply.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API