РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
355 of 687 menu

Метод aggregate

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

Синтаксис

df.groupby(by).aggregate(func) df.groupby(by).aggregate([func1, func2]) df.groupby(by).aggregate({col: func}) df.groupby(by).aggregate({col: [func1, func2]})

Пример

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

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1, 2], 'b': [10, 20, 30, 40, 50, 60] }) res = df.groupby('a').aggregate('sum') print(res)

Результат выполнения кода:

b a 1 90 2 120

Пример

Давайте применим несколько функций агрегации к столбцу:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1, 2], 'b': [10, 20, 30, 40, 50, 60] }) res = df.groupby('a').aggregate(['sum', 'mean']) print(res)

Результат выполнения кода:

b sum mean a 1 90 30.0 2 120 40.0

Пример

Давайте применим разные функции к разным столбцам с помощью словаря:

import pandas as pd df = pd.DataFrame({ 'group': ['A', 'B', 'A', 'B', 'A'], 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.groupby('group').aggregate({ 'a': 'sum', 'b': 'mean' }) print(res)

Результат выполнения кода:

a b group A 9 30.0 B 6 30.0

Пример

Давайте применим несколько функций к разным столбцам:

import pandas as pd df = pd.DataFrame({ 'group': ['A', 'B', 'A', 'B', 'A'], 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.groupby('group').aggregate({ 'a': ['sum', 'max'], 'b': ['mean', 'min'] }) print(res)

Результат выполнения кода:

a b sum max mean min group A 9 5 30.0 10 B 6 4 30.0 20

Пример

Давайте используем пользовательскую функцию для агрегации:

import pandas as pd df = pd.DataFrame({ 'group': ['A', 'B', 'A', 'B', 'A'], 'a': [1, 2, 3, 4, 5] }) res = df.groupby('group').aggregate( lambda x: x.max() - x.min() ) print(res)

Результат выполнения кода:

a group A 4 B 2

Пример

Давайте применим функцию к нескольким столбцам с помощью списка:

import pandas as pd df = pd.DataFrame({ 'group': ['A', 'B', 'A', 'B', 'A'], 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.groupby('group').aggregate('sum') print(res)

Результат выполнения кода:

a b group A 9 90 B 6 60

Смотрите также

  • метод agg,
    который является сокращённой версией метода aggregate
  • метод transform,
    который применяет функцию и возвращает данные в исходной форме
  • метод apply,
    который применяет пользовательскую функцию к группам
  • метод sum,
    который вычисляет сумму значений в группах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить