當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。