pandas.core.groupby.SeriesGroupBy.ngroup#

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

从0到组数减1,对每个组进行编号。

这是 cumcount 的枚举补充。请注意,分配给组的数字与在迭代 groupby 对象时看到的组顺序相匹配,而不是它们首次被观察到的顺序。

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

参数:
升序布尔值, 默认为 True

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

返回:
系列

每个组的唯一编号。

参见

cumcount

为每个组中的行编号。

例子

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