Spec-Zone.ru › pandas 2

pandas.Series.groupby

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

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

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

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

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

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

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

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

level:int, имя уровня или последовательность таких, по умолчанию 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.SeriesGroupBy

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

См. также

resample

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

Примечания

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

Примеры

>>> ser = pd.Series([390., 350., 30., 20.],
...                 index=['Falcon', 'Falcon', 'Parrot', 'Parrot'],
...                 name="Max Speed")
>>> ser
Falcon    390.0
Falcon    350.0
Parrot     30.0
Parrot     20.0
Name: Max Speed, dtype: float64
>>> ser.groupby(["a", "b", "a", "b"]).mean()
a    210.0
b    185.0
Name: Max Speed, dtype: float64
>>> ser.groupby(level=0).mean()
Falcon    370.0
Parrot     25.0
Name: Max Speed, dtype: float64
>>> ser.groupby(ser > 100).mean()
Max Speed
False     25.0
True     370.0
Name: Max Speed, dtype: float64

Группировка по индексам

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

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

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

>>> ser = pd.Series([1, 2, 3, 3], index=["a", 'a', 'b', np.nan])
>>> ser.groupby(level=0).sum()
a    3
b    3
dtype: int64
>>> ser.groupby(level=0, dropna=False).sum()
a    3
b    3
NaN  3
dtype: int64
>>> arrays = ['Falcon', 'Falcon', 'Parrot', 'Parrot']
>>> ser = pd.Series([390., 350., 30., 20.], index=arrays, name="Max Speed")
>>> ser.groupby(["a", "b", "a", np.nan]).mean()
a    210.0
b    350.0
Name: Max Speed, dtype: float64
>>> ser.groupby(["a", "b", "a", np.nan], dropna=False).mean()
a    210.0
b    350.0
NaN   20.0
Name: Max Speed, dtype: float64

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

Spec-Zone.ru

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