pandas.core.groupby.DataFrameGroupBy.nth#
- property DataFrameGroupBy.nth[源代码]#
如果 n 是整数,则取每个组的第 n 行,否则取行的子集。
可以是调用或索引。使用索引表示法时,dropna 不可用。索引表示法接受逗号分隔的整数和切片列表。
如果 dropna,则取第 n 个非空行;dropna 是 ‘all’ 或 ‘any’;这等效于在分组之前调用 dropna(how=dropna)。
- Parameters:
- nint、slice 或 ints 和 slices 的列表
行的单个第 n 个值或第 n 个值或切片的列表。
在 1.4.0 版本发生变更: 添加了切片和包含切片的列表。添加了索引表示法。
- dropna{‘any’, ‘all’, None},默认为 None
在计算第 n 行之前应用指定的 dropna 操作。仅当 n 是整数时支持。
- Returns:
- Series 或 DataFrame
每个组内的第 n 个值。
参见
Series.groupby将函数 groupby 应用于 Series。
DataFrame.groupby将函数 groupby 应用于 DataFrame 的每一行或每一列。
Examples
>>> 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: []