pandas.core.groupby.GroupBy.nth — pandas 0.24.0rc1 documentation (original) (raw)
GroupBy.
nth
(n, dropna=None)[source]¶
Take the nth row from each group if n is an int, or a subset of rows if n is a list of ints.
If dropna, will take the nth non-null row, dropna is either Truthy (if a Series) or ‘all’, ‘any’ (if a DataFrame); this is equivalent to calling dropna(how=dropna) before the groupby.
Parameters: | n : int or list of ints a single nth value for the row or a list of nth values dropna : None or str, optional apply the specified dropna operation before counting which row is the nth row. Needs to be None, ‘any’ or ‘all’ |
---|
See also
pandas.Series.
, pandas.DataFrame.
, pandas.Panel.
Examples
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
Specifying dropna allows count ignoring NaN
g.nth(0, dropna='any') B A 1 2.0 2 3.0
NaNs denote group exhausted when using dropna
g.nth(3, dropna='any') B A 1 NaN 2 NaN
Specifying as_index=False in groupby keeps the original index.
df.groupby('A', as_index=False).nth(1) A B 1 1 2.0 4 2 5.0