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

Класс GroupBy

Класс GroupBy создается при применении метода groupby к DataFrame или Series. Он представляет собой специальный объект, который содержит информацию о разбиении данных на группы по заданным ключам. Объект GroupBy не хранит сами данные, а хранит ссылки на исходные данные и правила группировки, что позволяет эффективно выполнять различные операции над группами.

Синтаксис

df.groupby(by, axis=0, level=None, sort=True)

Параметры метода groupby:

  • by - ключ или список ключей для группировки. Может быть столбцом, массивом или функцией.
  • axis - ось для группировки, по умолчанию 0 (строки).
  • level - уровень для группировки по индексу.
  • sort - сортировка групп по ключам.

Атрибуты класса

Класс GroupBy содержит несколько полезных атрибутов:

  • groups - словарь, где ключи - названия групп, а значения - индексы элементов в каждой группе.
  • ngroups - количество групп.
  • indices - словарь с индексами каждой группы.

Пример

Создадим таблицу и сгруппируем её по столбцу:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1], 'b': [10, 20, 30, 40, 50], 'c': [100, 200, 300, 400, 500] }) grouped = df.groupby('a') print(grouped)

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

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f8a1b2c3d4e>

Как видите, объект GroupBy не выводит сами данные, а только информацию о своём типе и адресе в памяти.

Пример

Выведем информацию о группах с помощью атрибута groups:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1], 'b': [10, 20, 30, 40, 50], 'c': [100, 200, 300, 400, 500] }) grouped = df.groupby('a') print(grouped.groups)

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

{1: [0, 2, 4], 2: [1, 3]}

Пример

Получим количество групп с помощью атрибута ngroups:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1], 'b': [10, 20, 30, 40, 50], 'c': [100, 200, 300, 400, 500] }) grouped = df.groupby('a') print(grouped.ngroups)

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

2

Пример

Выполним операцию агрегации над группами с помощью метода sum:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1], 'b': [10, 20, 30, 40, 50], 'c': [100, 200, 300, 400, 500] }) grouped = df.groupby('a') print(grouped.sum())

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

b c a 1 90 900 2 60 600

Объект GroupBy позволяет применять множество методов к группам, включая sum, mean, count, agg и другие.

Пример

Получим первую строку из каждой группы с помощью метода first:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 1, 2, 1], 'b': [10, 20, 30, 40, 50], 'c': [100, 200, 300, 400, 500] }) grouped = df.groupby('a') print(grouped.first())

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

b c a 1 10 100 2 20 200

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

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