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