# pandas.core.groupby.GroupBy.cumcount

`GroupBy.``cumcount`(ascending=True)

  Number each item in each group from 0 to the length of that group - 1.

  Essentially this is equivalent to

      >>> self.apply(lambda x: Series(np.arange(len(x)), x.index))

  Parameters:

  ascending : bool, default True

  > If False, number in reverse, from length of group - 1 to 0.

  See also

  `pandas.Series.groupby`, `pandas.DataFrame.groupby`, `pandas.Panel.groupby`

  Examples

      >>> df = pd.DataFrame([['a'], ['a'], ['a'], ['b'], ['b'], ['a']],
      ...                   columns=['A'])
      >>> df
         A
      0  a
      1  a
      2  a
      3  b
      4  b
      5  a
      >>> df.groupby('A').cumcount()
      0    0
      1    1
      2    2
      3    0
      4    1
      5    3
      dtype: int64
      >>> df.groupby('A').cumcount(ascending=False)
      0    3
      1    2
      2    1
      3    1
      4    0
      5    0
      dtype: int64

Scroll To Top