pandas.core.groupby.DataFrameGroupBy.cumcount
- DataFrameGroupBy.cumcount(ascending=True)[source]
-
Number each item in each group from 0 to the length of that group - 1.
Essentially this is equivalent to
self.apply(lambda x: pd.Series(np.arange(len(x)), x.index))
- Parameters
-
- ascending:bool, default True
-
If False, number in reverse, from length of group - 1 to 0.
- Returns
-
- Series
-
Sequence number of each element within each group.
See also
ngroup
-
Number the groups themselves.
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
© 2008–2021, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.3.4/reference/api/pandas.core.groupby.DataFrameGroupBy.cumcount.html