pandas.core.groupby.SeriesGroupBy.cumprod#

SeriesGroupBy.cumprod(numeric_only=False, *args, **kwargs)[source]#

Cumulative product for each group.

Parameters:
numeric_onlybool, default False

Include only float, int, boolean columns.

*argstuple

Positional arguments to be passed to func.

**kwargsdict

Additional/specific keyword arguments to be passed to the function, such as numeric_only and skipna.

Returns:
Series or DataFrame

Cumulative product for each group. Same object type as the caller.

See also

Series.groupby

Apply a function groupby to a Series.

DataFrame.groupby

Apply a function groupby to each row or column of a DataFrame.

Examples

For SeriesGroupBy:

>>> lst = ["a", "a", "b"]
>>> ser = pd.Series([6, 2, 0], index=lst)
>>> ser
a    6
a    2
b    0
dtype: int64
>>> ser.groupby(level=0).cumprod()
a    6
a   12
b    0
dtype: int64

For DataFrameGroupBy:

>>> data = [[1, 8, 2], [1, 2, 5], [2, 6, 9]]
>>> df = pd.DataFrame(
...     data, columns=["a", "b", "c"], index=["cow", "horse", "bull"]
... )
>>> df
        a   b   c
cow     1   8   2
horse   1   2   5
bull    2   6   9
>>> df.groupby("a").groups
{1: ['cow', 'horse'], 2: ['bull']}
>>> df.groupby("a").cumprod()
        b   c
cow     8   2
horse  16  10
bull    6   9