Spec-Zone.ru › pandas 2

pandas.DataFrame.groupby

DataFrame.groupby(by=None, axis=_NoDefault.no_default, level=None, as_index=True, sort=True, group_keys=True, observed=_NoDefault.no_default, dropna=True)[source]

Группировка DataFrame с помощью отображения или по ряду столбцов.

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

Параметры:
by:отображение, функция, метка, pd.Grouper или список таких

Используется для определения групп для группировки. Если by является функцией, она вызывается для каждого значения индекса объекта. Если передается словарь или Series, значения Series или словаря будут использоваться для определения групп (значения Series сначала выравниваются; см. метод .align()). Если передается список или массив ndarray длиной, равной выбранной оси (см. руководство по группировке groupby), значения используются как есть для определения групп. Метка или список меток могут передаваться для группировки по столбцам в self. Обратите внимание, что кортеж интерпретируется как (один) ключ.

axis:{0 или ‘index’, 1 или ‘columns’}, по умолчанию 0

Разделение по строкам (0) или столбцам (1). Для Series этот параметр не используется и по умолчанию равен 0.

Устарело начиная с версии 2.1.0: Будет удалено и будет работать как axis=0 в будущей версии. Для axis=1, используйте frame.T.groupby(...) вместо этого.

level:целое число, имя уровня или последовательность таких, по умолчанию None

Если ось является MultiIndex (иерархической), группировка по определенному уровню или уровням. Не указывайте одновременно by и level.

as_index:bool, по умолчанию True

Возвратить объект с метками групп в качестве индекса. Актуально только для входных данных DataFrame. as_index=False фактически возвращает результат группировки в «стиле SQL». Этот аргумент не влияет на фильтрации (см. руководство по фильтрации), такие как head(), tail(), nth() и в преобразованиях (см. руководство по преобразованиям).

sort:bool, по умолчанию True

Сортировать ключи групп. Для лучшей производительности выключите это. Обратите внимание, что это не влияет на порядок наблюдений в каждой группе. Groupby сохраняет порядок строк внутри каждой группы. Если False, группы появятся в том же порядке, что и в исходном DataFrame. Этот аргумент не влияет на фильтрации (см. руководство по фильтрации), такие как head(), tail(), nth() и в преобразованиях (см. руководство по преобразованиям).

Изменено в версии 2.0.0: Указание sort=False с упорядоченным категориальным группировщиком больше не будет сортировать значения.

group_keys:bool, по умолчанию True

При вызове apply и аргумент by возвращает результат с индексом (т. е. преобразование) , добавляйте ключи групп в индекс, чтобы идентифицировать части. По умолчанию ключи групп не включаются, когда метки индекса (и столбцов) результата совпадают с входными данными, и включаются в противном случае.

Изменено в версии 1.5.0: Предупреждает, что group_keys больше не будет игнорироваться, когда результат от apply — это Series или DataFrame с аналогичным индексом. Укажите group_keys явно, чтобы включить или исключить ключи групп.

Изменено в версии 2.0.0: group_keys теперь по умолчанию True.

observed:bool, по умолчанию False

Это применимо только если какой-либо из группировщиков — это Categoricals. Если True: отображаются только наблюдаемые значения для категориальных группировщиков. Если False: отображаются все значения для категориальных группировщиков.

Устарело начиная с версии 2.1.0: Значение по умолчанию изменится на True в будущей версии pandas.

dropna:bool, по умолчанию True

Если True и если ключи групп содержат значения NA, значения NA вместе со строкой/столбцом будут удалены. Если False, значения NA также будут обрабатываться как ключ в группах.

Возвращает:
pandas.api.typing.DataFrameGroupBy

Возвращает объект группировки, содержащий информацию о группах.

См. также

resample

Удобный метод для преобразования частоты и ресемплирования временных рядов.

Примечания

Более подробное использование и примеры, включая разделение объекта на группы, итерацию по группам, выбор группы, агрегирование и многое другое, см. в руководстве пользователя.

Примеры

>>> df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
...                               'Parrot', 'Parrot'],
...                    'Max Speed': [380., 370., 24., 26.]})
>>> df
   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
2  Parrot       24.0
3  Parrot       26.0
>>> df.groupby(['Animal']).mean()
        Max Speed
Animal
Falcon      375.0
Parrot       25.0

Иерархические индексы

Можно группировать по разным уровням иерархического индекса с помощью параметра level:

>>> arrays = [['Falcon', 'Falcon', 'Parrot', 'Parrot'],
...           ['Captive', 'Wild', 'Captive', 'Wild']]
>>> index = pd.MultiIndex.from_arrays(arrays, names=('Animal', 'Type'))
>>> df = pd.DataFrame({'Max Speed': [390., 350., 30., 20.]},
...                   index=index)
>>> df
                Max Speed
Animal Type
Falcon Captive      390.0
       Wild         350.0
Parrot Captive       30.0
       Wild          20.0
>>> df.groupby(level=0).mean()
        Max Speed
Animal
Falcon      370.0
Parrot       25.0
>>> df.groupby(level="Type").mean()
         Max Speed
Type
Captive      210.0
Wild         185.0

Также можно выбрать включение или исключение NA в ключах групп, установив параметр dropna, по умолчанию значение True.

>>> l = [[1, 2, 3], [1, None, 4], [2, 1, 3], [1, 2, 2]]
>>> df = pd.DataFrame(l, columns=["a", "b", "c"])
>>> df.groupby(by=["b"]).sum()
    a   c
b
1.0 2   3
2.0 2   5
>>> df.groupby(by=["b"], dropna=False).sum()
    a   c
b
1.0 2   3
2.0 2   5
NaN 1   4
>>> l = [["a", 12, 12], [None, 12.3, 33.], ["b", 12.3, 123], ["a", 1, 1]]
>>> df = pd.DataFrame(l, columns=["a", "b", "c"])
>>> df.groupby(by="a").sum()
    b     c
a
a   13.0   13.0
b   12.3  123.0
>>> df.groupby(by="a", dropna=False).sum()
    b     c
a
a   13.0   13.0
b   12.3  123.0
NaN 12.3   33.0

При использовании .apply(), используйте group_keys для включения или исключения ключей групп. Аргумент group_keys по умолчанию равен True (включение).

>>> df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
...                               'Parrot', 'Parrot'],
...                    'Max Speed': [380., 370., 24., 26.]})
>>> df.groupby("Animal", group_keys=True)[['Max Speed']].apply(lambda x: x)
          Max Speed
Animal
Falcon 0      380.0
       1      370.0
Parrot 2       24.0
       3       26.0
>>> df.groupby("Animal", group_keys=False)[['Max Speed']].apply(lambda x: x)
   Max Speed
0      380.0
1      370.0
2       24.0
3       26.0

© 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.DataFrame.groupby.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API