pandas.core.groupby.GroupBy.nth#
- property GroupBy.nth[source]#
- Take the nth row from each group if n is an int, otherwise a subset of rows. - Can be either a call or an index. dropna is not available with index notation. Index notation accepts a comma separated list of integers and slices. - If dropna, will take the nth non-null row, dropna is either ‘all’ or ‘any’; this is equivalent to calling dropna(how=dropna) before the groupby. - Parameters
- nint, slice or list of ints and slices
- A single nth value for the row or a list of nth values or slices. - Changed in version 1.4.0: Added slice and lists containing slices. Added index notation. 
- dropna{‘any’, ‘all’, None}, default None
- Apply the specified dropna operation before counting which row is the nth row. Only supported if n is an int. 
 
- Returns
- Series or DataFrame
- N-th value within each group. 
 
 - See also - Series.groupby
- Apply a function groupby to a Series. 
- DataFrame.groupby
- Apply a function groupby to each row or column of a DataFrame. 
 - 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 >>> g.nth(slice(None, -1)) B A 1 NaN 1 2.0 2 3.0 - Index notation may also be used - >>> 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 - 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