pandas.Series.groupby
- Series.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, observed=<no_default>, dropna=True)[source]
-
Группирует Series с помощью сопоставителя или Series со столбцами.
Операция groupby включает в себя сочетание разделения объекта, применения функции и объединения результатов. Это можно использовать для группировки больших объемов данных и выполнения операций над этими группами.
- Параметры:
-
- by:mapping, function, label, pd.Grouper or list of such
-
Используется для определения групп при группировке. Если
by— функция, она вызывается для каждого значения индекса объекта. Если передан dict или Series, для определения групп используются значения Series или dict (значения Series предварительно выравниваются; см. метод.align()). Если передан список или ndarray длиной, равной выбранной оси (см. руководство пользователя по groupby), значения используются без изменений для определения групп. Для группировки по столбцам вselfможно передать метку или список меток. Обратите внимание, что кортеж интерпретируется как один ключ. - axis:{0 or ‘index’, 1 or ‘columns’}, default 0
-
Разделение по строкам (0) или столбцам (1). Для Series этот параметр не используется и по умолчанию равен 0.
Устарело с версии 2.1.0: Будет удален и в будущей версии будет вести себя так же, как axis=0. Для
axis=1используйтеframe.T.groupby(...). - level:int, level name, or sequence of such, default None
-
Если ось является MultiIndex (иерархическим индексом), группировка выполняется по указанному уровню или уровням. Не указывайте одновременно
byиlevel. - as_index:bool, default True
-
Возвращает объект, в котором метки групп используются в качестве индекса. Актуально только для входных данных DataFrame. При as_index=False результат группировки фактически имеет «SQL-стиль». Этот аргумент не влияет на фильтрацию (см. фильтрацию в руководстве пользователя), например
head(),tail(),nth(), а также на преобразования (см. преобразования в руководстве пользователя). - sort:bool, default True
-
Сортировать ключи групп. Отключение сортировки повышает производительность. Обратите внимание, что это не влияет на порядок наблюдений внутри каждой группы. Groupby сохраняет порядок строк внутри каждой группы. Если False, группы будут расположены в том же порядке, что и в исходном DataFrame. Этот аргумент не влияет на фильтрацию (см. фильтрацию в руководстве пользователя), например
head(),tail(),nth(), а также на преобразования (см. преобразования в руководстве пользователя).Изменено в версии 2.0.0: Указание
sort=Falseдля упорядоченного категориального группировщика больше не приводит к сортировке значений. - group_keys:bool, default True
-
При вызове apply, если аргумент
byвозвращает результат с тем же индексом (то есть результат преобразования), добавляет ключи групп в индекс, чтобы идентифицировать части. По умолчанию ключи групп не включаются, если метки индекса (и столбцов) результата совпадают с входными данными, и включаются в противном случае.Изменено в версии 1.5.0: Выдается предупреждение о том, что
group_keysбольше не будет игнорироваться, если результатapply— Series или DataFrame с тем же индексом. Явно укажитеgroup_keys, чтобы включить или не включать ключи групп.Изменено в версии 2.0.0: Значение
group_keysпо умолчанию теперь равноTrue. - observed:bool, default False
-
Применяется только в том случае, если хотя бы один из группировщиков является категориальным. Если True: отображаются только наблюдаемые значения категориальных группировщиков. Если False: отображаются все значения категориальных группировщиков.
Устарело с версии 2.1.0: В будущей версии pandas значение по умолчанию изменится на True.
- dropna:bool, default True
-
Если True и ключи групп содержат значения NA, значения NA вместе со строкой/столбцом будут отброшены. Если False, значения NA также будут рассматриваться как ключ в группах.
- Возвращает:
-
- pandas.api.typing.SeriesGroupBy
-
Возвращает объект groupby, содержащий сведения о группах.
См. также
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–2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
© 2011–2025, Open source contributors
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.3.0/reference/api/pandas.Series.groupby.html