pandas.core.groupby.GroupBy.nth#
- final GroupBy.nth(n, dropna=None)[源代码]#
如果n是整型,则取每组中的第n行,否则为行子集。
可以是调用,也可以是索引。Dropna不适用于索引表示法。索引表示法接受以逗号分隔的整数和切片列表。
如果Dropna将取第n个非空行,则DropNA为‘all’或‘any’;这等效于在Groupby之前调用DropNA(How=Dropna)。
- 参数
- n整型、片型或整型和片型列表
行的单个第n个值或第n个值或切片的列表。
在 1.4.0 版更改: 添加了切片和包含切片的列表。添加了索引表示法。
- dropna{‘Any’,‘all’,None},默认为None
在计算第n行是第n行之前应用指定的Dropna操作。仅当n为整型时才受支持。
- 退货
- 系列或DataFrame
每个组内的第n个值。
参见
Series.groupby
将函数GROUPBY应用于系列。
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) 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
也可以使用索引记数法
>>> 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
指定 dropna 允许忽略计数
NaN
>>> g.nth(0, dropna='any') B A 1 2.0 2 3.0
NAN表示使用DropNA时耗尽的组
>>> g.nth(3, dropna='any') B A 1 NaN 2 NaN
指定 as_index=False 在……里面 groupby 保留原始索引。
>>> df.groupby('A', as_index=False).nth(1) A B 1 1 2.0 4 2 5.0