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