Spec-Zone.ru › pandas 2

pandas.core.groupby.DataFrameGroupBy.nth

propertyDataFrameGroupBy.nth[source]

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

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

Если dropna, возьмет n-ую ненулевую строку, dropna — это либо «все», либо «любой»; это эквивалентно вызову dropna(how=dropna) перед groupby.

Parameters:
n:int, срез или список целых чисел и срезов

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

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

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

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

Returns:
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)
   A   B
0  1 NaN
2  2 3.0
>>> g.nth(1)
   A   B
1  1 2.0
4  2 5.0
>>> g.nth(-1)
   A   B
3  1 4.0
4  2 5.0
>>> g.nth([0, 1])
   A   B
0  1 NaN
1  1 2.0
2  2 3.0
4  2 5.0
>>> g.nth(slice(None, -1))
   A   B
0  1 NaN
1  1 2.0
2  2 3.0

Также может использоваться индексная запись

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

Указание dropna позволяет игнорировать NaN значения

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

Если указанное n значение больше любого из групп, возвращается пустой DataFrame

>>> g.nth(3, dropna='any')
Empty DataFrame
Columns: [A, B]
Index: []

© 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.core.groupby.DataFrameGroupBy.nth.html

Spec-Zone.ru

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