Сообщить об ошибке.

Метод .aggregate() объектов Series/DataFrame в pandas

Агрегация данных одной или несколькими операциями в pandas

Синтаксис:

df = DataFrame.aggregate(func=None, axis=0, *args, **kwargs)
s = Series.aggregate(func=None, *args, **kwargs)

# или псевдоним (рекомендуется)
df = DataFrame.agg(func=None, axis=0, *args, **kwargs)
s = Series.agg(func=None, *args, **kwargs)

Параметры:

  • func=None - функция, используемая для агрегирования данных. Если функция, то она должна работать либо при передаче DataFrame, либо при передаче в DataFrame.apply().

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

  • axis=0 - если 0 или 'index': применить функцию к каждому столбцу. Если 1 или 'columns': применить функцию к каждой строке.

    Методы Series.aggregate() и Series.agg() аргумент axis не использует и всегда равен 0.

  • *args - позиционные аргументы для передачи аргументу func.

  • **kwargs - ключевые аргументы для передачи аргументу func.

Возвращаемое значение:

Возвращает Скаляр, Series или DataFrame:

  • скаляр: когда Series.agg() вызывается с одной функцией
  • Series: когда DataFrame.agg() вызывается с одной функции.
  • DataFrame: когда DataFrame.agg() вызывается с несколькими функциями.

Описание:

Метод DataFrame.aggregate() библиотеки pandas применяет одну или несколько групповых операций (агрегирующих функций) к данным DataFrame по указанной оси axis.

Метод Series.aggregate() библиотеки pandas применяет одну или несколько групповых операций (агрегирующих функций) к данным Series.

Для DataFrame, операции агрегирования всегда выполняются по оси - индексу (по умолчанию) или оси столбцов. Это поведение отличается от функций агрегирования numpy (mean, median, prod, sum, std, var), где по умолчанию вычисляется агрегирование плоского массива, например, numpy.mean(arr_2d), а не numpy.mean(arr_2d, axis=0).

Методы DataFrame.agg() и Series.agg() - это псевдоним для DataFrame.aggregate() и Series.aggregate() соответственно. Пользователям библиотеки рекомендуется использовать псевдоним.

Функции, изменяющие переданный объект, могут приводить к непредвиденному поведению или ошибкам и не поддерживаются.

Примеры использования DataFrame.agg():

Еще больше примеров смотрите в разделе "Метод DataFrameGroupBy.aggregate()" в материале "Группировка данных DataFrame/Series в pandas".

Создадим DataFrame, который будем использовать в примерах:

>>> import numpy as np
>>> import pandas as pd

df = pd.DataFrame([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9],
                   [np.nan, np.nan, np.nan]],
                  columns=['A', 'B', 'C'])

>>> df
     A    B    C
0  1.0  2.0  3.0
1  4.0  5.0  6.0
2  7.0  8.0  9.0
3  NaN  NaN  NaN

Применение нескольких групповых функции к DataFrame

>>> df.agg(['sum', 'min'])
        A     B     C
sum  12.0  15.0  18.0
min   1.0   2.0   3.0

Различные агрегации для каждого столбца

>>> df.agg({'A' : ['sum', 'min'], 'B' : ['min', 'max']})
        A    B
sum  12.0  NaN
min   1.0  2.0
max   NaN  8.0

Объединим различные групповые функции по столбцам и переименуем индекс полученного DataFrame.

>>> df.agg(x=('A', 'max'), y=('B', 'min'), z=('C', 'mean'))
     A    B    C
x  7.0  NaN  NaN
y  NaN  2.0  NaN
z  NaN  NaN  6.0

Агрегация данных по столбцам DataFrame

>>> df.agg("mean", axis="columns")
0    2.0
1    5.0
2    8.0
3    NaN
dtype: float64

Примеры использования Series.agg():

Создадим Series, который будем использовать в примерах:

>>> s = pd.Series([1, 2, 3, 4])
>>> s
0    1
1    2
2    3
3    4
dtype: int64

Применение одной групповой функции к Series

>>> s.agg('min')
1

Применение нескольких групповых функции к Series

>>> s.agg(['min', 'max'])
min    1
max    4
dtype: int64

Встроенные методы агрегирования (групповые функции)

Многие распространенные функции агрегирования встроены в объекты Series/DataFrame в качестве методов. В перечисленных ниже методах те, у которых есть *, не имеют оптимизированной для Cython реализации.

Метод `GroupBy`Описание
any()являются ли какие-либо значения в группах истинными
all()являются ли истинными все значения в группах
count()количество значений, отличных от NA, в группах
cov() *ковариация групп
first()первое встречающееся значение в каждой группе
idxmax() *индекс максимального значения в каждой группе
idxmin() *индекс минимального значения в каждой группе
last()последнее встречающееся значение в каждой группе
max()максимальное значение в каждой группе
mean()среднее значение для каждой группы
median()медиана каждой группы
min()минимальное значение в каждой группе
nunique()количество уникальных значений в каждой группе
prod()произведение значений в каждой группе
quantile()заданный квантиль значений в каждой группе
sem()стандартная ошибка среднего значения значений в каждой группе
size()количество значений в каждой группе
skew() *перекос значений в каждой группе
std()стандартное отклонение значений в каждой группе
sum()сумма значений в каждой группе
var()разница значений в каждой группе