Spec-Zone.ru › pandas 1

pandas.DataFrame.groupby

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

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

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

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

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

axis:{0 или ‘индекс’, 1 или ‘столбцы’}, по умолчанию 0

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

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

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

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

Для агрегированных результатов возвращаемый объект содержит метки групп в качестве индекса. Актуально только для входных данных DataFrame. as_index=False эффективно соответствует результатам группировки в стиле SQL.

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

Сортировка ключей групп. Для повышения производительности выключите эту опцию. Примечание: это не влияет на порядок наблюдений внутри каждой группы. Groupby сохраняет порядок строк внутри каждой группы.

group_keys:bool, необязательно

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

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

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

Уменьшить размерность возвращаемого типа, если возможно, в противном случае возвращает согласованный тип.

Устарело начиная с версии 1.1.0.

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

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

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

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

Введено в версии 1.1.0.

Возвращает
DataFrameGroupBy

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

См. также

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

Мы также можем выбрать включение или исключение значений NaN в ключах групп, установив параметр 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).apply(lambda x: x)
          Animal  Max Speed
Animal
Falcon 0  Falcon      380.0
       1  Falcon      370.0
Parrot 2  Parrot       24.0
       3  Parrot       26.0
>>> df.groupby("Animal", group_keys=False).apply(lambda x: x)
   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
2  Parrot       24.0
3  Parrot       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/1.5.0/reference/api/pandas.DataFrame.groupby.html

Spec-Zone.ru

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