Spec-Zone.ru › pandas 1

pandas.core.groupby.GroupBy.nth

finalGroupBy.nth(n, dropna=None)[source]

Получение n-й строки из каждой группы, если n — целое число, в противном случае — подмножество строк.

Может быть вызовом функции или индексом. dropna недоступен при использовании индексации. Индексная нотация принимает список целых чисел и срезов, разделенных запятыми.

Если dropna, берется n-я непустая строка, dropna может принимать значения ‘all’ или ‘any’; это эквивалентно вызову dropna(how=dropna) перед группировкой.

Параметры
n:int, срез или список целых чисел и срезов

Единственное значение n для строки или список значений n или срезов.

Изменено в версии 1.4.0: Добавлены срезы и списки, содержащие срезы. Добавлена индексная нотация.

dropna:{‘any’, ‘all’, None}, по умолчанию None

Применение указанной операции dropna перед подсчетом, какая строка является n-й строкой. Поддерживается только если n является целым числом.

Возвращаемое значение
Series или DataFrame

N-ое значение в каждой группе.

См. также

Series.groupby

Применение функции groupby к Series.

DataFrame.groupby

Применение функции groupby к каждой строке или столбцу DataFrame.

Примеры

>>> df = pd.DataFrame({'A': [1, 1, 2, 1, 2],
...                    'B': [np.nan, 2, 3, 4, 5]}, columns=['A', 'B'])
>>> g = df.groupby('A')
>>> g.nth(0)
     B
A
1  NaN
2  3.0
>>> g.nth(1)
     B
A
1  2.0
2  5.0
>>> g.nth(-1)
     B
A
1  4.0
2  5.0
>>> g.nth([0, 1])
     B
A
1  NaN
1  2.0
2  3.0
2  5.0
>>> g.nth(slice(None, -1))
     B
A
1  NaN
1  2.0
2  3.0

Индексная нотация также может быть использована

>>> g.nth[0, 1]
     B
A
1  NaN
1  2.0
2  3.0
2  5.0
>>> g.nth[:-1]
     B
A
1  NaN
1  2.0
2  3.0

Указание dropna позволяет подсчет, игнорируя NaN

>>> g.nth(0, dropna='any')
     B
A
1  2.0
2  3.0

NaN обозначает исчерпанную группу при использовании dropna

>>> g.nth(3, dropna='any')
    B
A
1 NaN
2 NaN

Указание as_index=False в groupby сохраняет исходный индекс.

>>> df.groupby('A', as_index=False).nth(1)
   A    B
1  1  2.0
4  2  5.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.core.groupby.GroupBy.nth.html

Spec-Zone.ru

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