pandas.core.groupby.SeriesGroupBy.aggregate
- SeriesGroupBy.aggregate(func=None, *args, engine=None, engine_kwargs=None, **kwargs)[source]
-
Агрегирование с использованием одной или нескольких операций по указанной оси.
- Параметры:
-
- func:функция, строка, список, словарь или None
-
Функция для агрегирования данных. Если это функция, она должна работать, когда ей передается Series, или когда она передается в Series.apply.
Допускаемые комбинации:
функция
имя функции в виде строки
список функций и/или имен функций, например
[np.sum, 'mean']-
None, в этом случае
**kwargsиспользуются с именованным агрегированием. Здесь на выходе одна колонка для каждого элемента в**kwargs. Имя колонки — ключевое слово, а значение определяет используемую агрегацию для вычисления значений в колонке.Также может принимать функцию Numba JIT с
engine='numba'указанными. Поддержка только одной функции.Если выбран
'numba'движок, функция должна быть пользовательской функцией сvaluesиindexв качестве первого и второго аргументов соответственно в сигнатуре функции. Индекс каждой группы будет передан пользовательской функции и, при необходимости, будет доступен для использования.
Устарело начиная с версии 2.1.0: Передача словаря устарела и в будущих версиях pandas вызовет исключение. Вместо этого передайте список агрегаций.
- *args
-
Позиционные аргументы для передачи в func.
- engine:строка, по умолчанию None
-
'cython': Выполняет функцию через C-расширения из cython.'numba': Выполняет функцию через скомпилированный JIT-код из numba.None: По умолчанию'cython'или глобальная настройкаcompute.use_numba
- engine_kwargs:словарь, по умолчанию None
-
Для
'cython'движка нет допустимыхengine_kwargsДля
'numba'движка движок может приниматьnopython,nogilиparallelключи словаря. Значения должны быть либоTrueилиFalse. Значениеengine_kwargsпо умолчанию для'numba'движка{'nopython': True, 'nogil': False, 'parallel': False}и будет применено к функции
- **kwargs
-
Если
funcравно None,**kwargsиспользуются для определения имен столбцов и агрегаций с помощью именованного агрегирования. См. записьfunc.В противном случае — ключевые аргументы для передачи в func.
- Возвращаемое значение:
-
- Series
См. также
Series.groupby.apply-
Применение функции func по группам и объединение результатов.
Series.groupby.transform-
Преобразование Series в каждой группе на основе заданной функции.
Series.aggregate-
Агрегирование с использованием одной или нескольких операций по заданной оси.
Примечания
При использовании
engine='numba', внутренней «обратной» обработки не будет. Данные группы и индекс группы будут переданы как массивы NumPy в JIT-скомпилированную пользовательскую функцию, и альтернативные попытки выполнения не будут предприняты.Функции, изменяющие переданный объект, могут привести к непредсказуемому поведению или ошибкам и не поддерживаются. Подробнее см. Изменение с помощью пользовательских функций (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/2.2.2/reference/api/pandas.core.groupby.SeriesGroupBy.aggregate.html