Skip to main content
`Ctrl`+`K`

# pandas.api.typing.DataFrameGroupBy.cumprod

DataFrameGroupBy.cumprod(numeric_only=False, *args, **kwargs)

  Cumulative product for each group.

  Returns a Series or DataFrame of the same size with the cumulative product computed within each group.

  Parameters:
    numeric_only bool, default False

      Include only float, int, boolean columns.

    *args tuple

      Positional arguments to be passed to func.

    **kwargs dict

      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.cumprod`

    Apply function cumprod to a Series.

  `DataFrame.cumprod`

    Apply function cumprod 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