Spec-Zone.ru › pandas 0.20

pandas.Series.apply

Series.apply(func, convert_dtype=True, args=(), **kwds) [source]

Вызов функции для значений Series. Может быть ufunc (функция NumPy, которая применяется ко всей Series) или Python-функцией, которая работает только со значениями по одному.

Параметры:

func : функция

convert_dtype : булево значение, по умолчанию True

Попытка найти более подходящий тип данных для результатов функции для каждого элемента. Если False, оставить тип данных object

args : кортеж

Позиционные аргументы для передачи функции в дополнение к значению

Дополнительные ключевые аргументы будут переданы в функцию в качестве ключевых аргументов

Возвращает:

y : Series или DataFrame, если func возвращает Series

См. также

Series.map
Для операций с элементами по одному
Series.agg
только для операций агрегирования
Series.transform
только для операций преобразования

Примеры

Создайте серию с типичными летними температурами для каждого города.

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

Spec-Zone.ru

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