Spec-Zone.ru › pandas 1

pandas.Series.groupby

Series.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]

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

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

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

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

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

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

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

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

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

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

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

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

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, и если ключи групп содержат значения NA, значения NA вместе со строкой/столбцом будут удалены. Если False, значения NA также будут обрабатываться как ключ в группах.

Добавлена в версии 1.1.0.

Возвращает
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/1.5.0/reference/api/pandas.Series.groupby.html

Spec-Zone.ru

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