pandas.core.groupby.DataFrameGroupBy.nth#
- свойство DataFrameGroupBy.nth[источник]#
Взять n-ю строку из каждой группы, если n - целое число, иначе подмножество строк.
Может быть либо вызовом, либо индексом. dropna недоступен с индексной нотацией. Индексная нотация принимает список целых чисел и срезов, разделенных запятыми.
Если dropna, будет взята n-я непустая строка, dropna — либо ‘all’, либо ‘any’; это эквивалентно вызову dropna(how=dropna) перед группировкой.
- Параметры:
- nint, slice или список int и slices
Одиночное 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) 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 позволяет игнорировать
NaNvalues>>> 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: []