pandas.core.groupby.GroupBy.nth¶
-
GroupBy.
nth
(n, dropna=None)[source]¶ 如果n是一个int,从每个组的第n行,或如果n是一个int列表的行的子集。
如果dropna,将取第n个非空行,dropna是Truthy(如果一系列)或'全部','任何'(如果一个DataFrame);这相当于在groupby之前调用dropna(how = dropna)。
参数: n:int或ints列表
该行的单个第n个值或第n个值的列表
dropna:无或str,可选
在计数哪个行是第n行之前应用指定的dropna操作。需要是无,“任何”或“所有”
例子
>>> 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
指定
dropna
允许计数忽略NaN>>> g.nth(0, dropna='any') B A 1 2.0 2 3.0
NaNs表示使用dropna时耗尽的组
>>> g.nth(3, dropna='any') B A 1 NaN 2 NaN
在
groupby
中指定as_index=False
会保留原始索引。>>> df.groupby('A', as_index=False).nth(1) A B 1 1 2.0 4 2 5.0