pandas.core.groupby.SeriesGroupBy.nth#
- property SeriesGroupBy.nth[源代码]#
如果 n 是整数,则从每个组中取第 n 行,否则取行的子集。
可以是调用或索引。使用索引符号时,dropna 不可用。索引符号接受以逗号分隔的整数和切片列表。
如果 dropna,将取第 n 个非空行,dropna 可以是 ‘all’ 或 ‘any’;这等价于在 groupby 之前调用 dropna(how=dropna)。
- 参数:
- nint, slice 或 int 和 slices 的列表
单个行或列表的 nth 值或切片。
在 1.4.0 版本发生变更: 添加了切片和包含切片的列表。添加了索引表示法。
- dropna{‘any’, ‘all’, None}, 默认 None
在计算哪一行是第 n 行之前应用指定的 dropna 操作。仅在 n 为整数时支持。
- 返回:
- 系列或数据框
每个组内的第N个值。
参见
Series.groupby对一个 Series 应用 groupby 函数。
DataFrame.groupby对DataFrame的每一行或每一列应用一个groupby函数。
例子
>>> 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) A B 0 1 NaN 2 2 3.0 >>> g.nth(1) A B 1 1 2.0 4 2 5.0 >>> g.nth(-1) A B 3 1 4.0 4 2 5.0 >>> g.nth([0, 1]) A B 0 1 NaN 1 1 2.0 2 2 3.0 4 2 5.0 >>> g.nth(slice(None, -1)) A B 0 1 NaN 1 1 2.0 2 2 3.0
索引符号也可以使用
>>> g.nth[0, 1] A B 0 1 NaN 1 1 2.0 2 2 3.0 4 2 5.0 >>> g.nth[:-1] A B 0 1 NaN 1 1 2.0 2 2 3.0
指定 dropna 允许忽略
NaN值>>> g.nth(0, dropna="any") A B 1 1 2.0 2 2 3.0
当指定的
n大于任何一组时,将返回一个空的 DataFrame>>> g.nth(3, dropna="any") Empty DataFrame Columns: [A, B] Index: []