pandas.core.groupby.DataFrameGroupBy.ngroup#

DataFrameGroupBy.ngroup(ascending=True)[源代码]#

为每个组从 0 编号到组数 - 1。

这是 cumcount 的枚举补码。请注意,分配给组的编号与在遍历 groupby 对象时看到的组的顺序匹配,而不是它们首次出现的顺序。

具有缺失键(其中 pd.isna() 为 True)的组将被标记为 NaN,并将从计数中跳过。

Parameters:
ascendingbool, default True

如果为 False,则反向编号,从组数 - 1 到 0。

Returns:
Series

每个组的唯一编号。

参见

cumcount

为每个组内的行编号。

Examples

>>> df = pd.DataFrame({"color": ["red", None, "red", "blue", "blue", "red"]})
>>> df
   color
0    red
1   None
2    red
3   blue
4   blue
5    red
>>> df.groupby("color").ngroup()
0    1.0
1    NaN
2    1.0
3    0.0
4    0.0
5    1.0
dtype: float64
>>> df.groupby("color", dropna=False).ngroup()
0    1
1    2
2    1
3    0
4    0
5    1
dtype: int64
>>> df.groupby("color", dropna=False).ngroup(ascending=False)
0    1
1    0
2    1
3    2
4    2
5    1
dtype: int64