Spec-Zone.ru › pandas 1

pandas.core.groupby.SeriesGroupBy.aggregate

SeriesGroupBy.aggregate(func=None, *args, engine=None, engine_kwargs=None, **kwargs)[source]

Агрегирование с использованием одной или нескольких операций по указанной оси.

Параметры
func:функция, строка, список или словарь

Функция для агрегирования данных. Если функция, должна работать при передаче Series или передаче в Series.apply.

Допустимые комбинации:

  • функция

  • имя функции в виде строки

  • список функций и/или имён функций, например [np.sum, 'mean']

  • словарь меток осей -> функции, имена функций или списки таких.

Также может принимать функцию Numba JIT с engine='numba' указанным. Поддерживается только передача одной функции с этим движком.

Если выбран движок 'numba', функция должна быть пользовательской функцией с values и index в качестве первого и второго аргументов соответственно в сигнатуре функции. Индекс каждой группы будет передан в пользовательскую функцию и, при необходимости, доступен для использования.

Изменено в версии 1.1.0.

*args

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

engine:строка, по умолчанию None
  • 'cython' : Выполняет функцию через C-расширения из cython.

  • 'numba' : Выполняет функцию через код, скомпилированный JIT из numba.

  • None : По умолчанию 'cython' или глобально установлено compute.use_numba

Новое в версии 1.1.0.

engine_kwargs:словарь, по умолчанию None
  • Для движка 'cython' нет допустимых engine_kwargs

  • Для движка 'numba' движок может принимать ключи словаря nopython, nogil и parallel. Значения должны быть либо True, либо False. По умолчанию engine_kwargs для движка 'numba' — {'nopython': True, 'nogil': False, 'parallel': False}, и он будет применён к функции.

Новое в версии 1.1.0.

**kwargs

Ключевые аргументы, которые нужно передать в func.

Возвращает
Series

См. также

Series.groupby.apply

Применение функции func к группам и объединение результатов.

Series.groupby.transform

Агрегирование с использованием одной или нескольких операций по указанной оси.

Series.aggregate

Преобразование Series в каждой группе на основе заданной функции.

Примечания

При использовании engine='numba', внутренней обратной связи не будет. Данные группы и индекс группы будут переданы в JIT-скомпилированную пользовательскую функцию в виде массивов NumPy, и альтернативные попытки выполнения не будут предприниматься.

Функции, изменяющие переданный объект, могут привести к неожиданному поведению или ошибкам и не поддерживаются. См. Изменения при использовании пользовательских функций (UDF) для получения дополнительной информации.

Изменено в версии 1.3.0: Результирующий тип данных будет отражать возвращаемое значение переданной func, см. примеры ниже.

Примеры

>>> s = pd.Series([1, 2, 3, 4])
>>> s
0    1
1    2
2    3
3    4
dtype: int64
>>> s.groupby([1, 1, 2, 2]).min()
1    1
2    3
dtype: int64
>>> s.groupby([1, 1, 2, 2]).agg('min')
1    1
2    3
dtype: int64
>>> s.groupby([1, 1, 2, 2]).agg(['min', 'max'])
   min  max
1    1    2
2    3    4

Имена выходных столбцов можно управлять, передавая желаемые имена столбцов и агрегации в качестве ключевых аргументов.

>>> s.groupby([1, 1, 2, 2]).agg(
...     minimum='min',
...     maximum='max',
... )
   minimum  maximum
1        1        2
2        3        4

Изменено в версии 1.3.0: Результирующий тип данных будет отражать возвращаемое значение агрегирующей функции.

>>> s.groupby([1, 1, 2, 2]).agg(lambda x: x.astype(float).min())
1    1.0
2    3.0
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/1.5.0/reference/api/pandas.core.groupby.SeriesGroupBy.aggregate.html

Spec-Zone.ru

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