当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.core.groupby.GroupBy.nth用法及代码示例


用法:

final GroupBy.nth(n, dropna=None)

如果 n 是 int,则从每个组中取第 n 行,否则取行的子集。

可以是调用或索引。 dropna 不适用于索引表示法。索引表示法接受以逗号分隔的整数和切片列表。

如果dropna,将取第n个非空行,dropna是‘all’ or ‘any’;这相当于在 groupby 之前调用 dropna(how=dropna)。

参数

n整数、切片或整数和切片列表

行的单个第 n 个值或第 n 个值或切片的列表。

dropna{‘any’, ‘all’, 无},默认无

在计算哪一行是第 n 行之前应用指定的 dropna 操作。仅当 n 是 int 时才支持。

返回

Series或DataFrame

每个组内的N-th 值。

例子

>>> 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

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.core.groupby.GroupBy.nth。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。