def cumprod(self: FrameLike, skipna: bool=True) -> FrameLike:
    "\n        Return cumulative product over a DataFrame or Series axis.\n\n        Returns a DataFrame or Series of the same size containing the cumulative product.\n\n        .. note:: the current implementation of cumprod uses Spark's Window without\n            specifying partition specification. This leads to move all data into\n            single partition in single machine and could cause serious\n            performance degradation. Avoid this method against very large dataset.\n\n        .. note:: unlike pandas', pandas-on-Spark's emulates cumulative product by\n            ``exp(sum(log(...)))`` trick. Therefore, it only works for positive numbers.\n\n        Parameters\n        ----------\n        skipna : boolean, default True\n            Exclude NA/null values. If an entire row/column is NA, the result will be NA.\n\n        Returns\n        -------\n        DataFrame or Series\n\n        See Also\n        --------\n        DataFrame.cummax : Return cumulative maximum over DataFrame axis.\n        DataFrame.cummin : Return cumulative minimum over DataFrame axis.\n        DataFrame.cumsum : Return cumulative sum over DataFrame axis.\n        DataFrame.cumprod : Return cumulative product over DataFrame axis.\n        Series.cummax : Return cumulative maximum over Series axis.\n        Series.cummin : Return cumulative minimum over Series axis.\n        Series.cumsum : Return cumulative sum over Series axis.\n        Series.cumprod : Return cumulative product over Series axis.\n\n        Raises\n        ------\n        Exception : If the values is equal to or lower than 0.\n\n        Examples\n        --------\n        >>> df = ps.DataFrame([[2.0, 1.0], [3.0, None], [4.0, 10.0]], columns=list('AB'))\n        >>> df\n             A     B\n        0  2.0   1.0\n        1  3.0   NaN\n        2  4.0  10.0\n\n        By default, iterates over rows and finds the sum in each column.\n\n        >>> df.cumprod()\n              A     B\n        0   2.0   1.0\n        1   6.0   NaN\n        2  24.0  10.0\n\n        It works identically in Series.\n\n        >>> df.A.cumprod()\n        0     2.0\n        1     6.0\n        2    24.0\n        Name: A, dtype: float64\n        "
    return self._apply_series_op((lambda psser: psser._cumprod(skipna)), should_resolve=True)
Return cumulative product over a DataFrame or Series axis.

Returns a DataFrame or Series of the same size containing the cumulative product.

.. note:: the current implementation of cumprod uses Spark's Window without
    specifying partition specification. This leads to move all data into
    single partition in single machine and could cause serious
    performance degradation. Avoid this method against very large dataset.

.. note:: unlike pandas', pandas-on-Spark's emulates cumulative product by
    ``exp(sum(log(...)))`` trick. Therefore, it only works for positive numbers.

Parameters
----------
skipna : boolean, default True
    Exclude NA/null values. If an entire row/column is NA, the result will be NA.

Returns
-------
DataFrame or Series

See Also
--------
DataFrame.cummax : Return cumulative maximum over DataFrame axis.
DataFrame.cummin : Return cumulative minimum over DataFrame axis.
DataFrame.cumsum : Return cumulative sum over DataFrame axis.
DataFrame.cumprod : Return cumulative product over DataFrame axis.
Series.cummax : Return cumulative maximum over Series axis.
Series.cummin : Return cumulative minimum over Series axis.
Series.cumsum : Return cumulative sum over Series axis.
Series.cumprod : Return cumulative product over Series axis.

Raises
------
Exception : If the values is equal to or lower than 0.

Examples
--------
>>> df = ps.DataFrame([[2.0, 1.0], [3.0, None], [4.0, 10.0]], columns=list('AB'))
>>> df
     A     B
0  2.0   1.0
1  3.0   NaN
2  4.0  10.0

By default, iterates over rows and finds the sum in each column.

>>> df.cumprod()
      A     B
0   2.0   1.0
1   6.0   NaN
2  24.0  10.0

It works identically in Series.

>>> df.A.cumprod()
0     2.0
1     6.0
2    24.0
Name: A, dtype: float64
def cumprod(self: FrameLike, skipna: bool=True) -> FrameLike:
    "\n        Return cumulative product over a DataFrame or Series axis.\n\n        Returns a DataFrame or Series of the same size containing the cumulative product.\n\n        .. note:: the current implementation of cumprod uses Spark's Window without\n            specifying partition specification. This leads to move all data into\n            single partition in single machine and could cause serious\n            performance degradation. Avoid this method against very large dataset.\n\n        .. note:: unlike pandas', pandas-on-Spark's emulates cumulative product by\n            ``exp(sum(log(...)))`` trick. Therefore, it only works for positive numbers.\n\n        Parameters\n        ----------\n        skipna : boolean, default True\n            Exclude NA/null values. If an entire row/column is NA, the result will be NA.\n\n        Returns\n        -------\n        DataFrame or Series\n\n        See Also\n        --------\n        DataFrame.cummax : Return cumulative maximum over DataFrame axis.\n        DataFrame.cummin : Return cumulative minimum over DataFrame axis.\n        DataFrame.cumsum : Return cumulative sum over DataFrame axis.\n        DataFrame.cumprod : Return cumulative product over DataFrame axis.\n        Series.cummax : Return cumulative maximum over Series axis.\n        Series.cummin : Return cumulative minimum over Series axis.\n        Series.cumsum : Return cumulative sum over Series axis.\n        Series.cumprod : Return cumulative product over Series axis.\n\n        Raises\n        ------\n        Exception : If the values is equal to or lower than 0.\n\n        Examples\n        --------\n        >>> df = ps.DataFrame([[2.0, 1.0], [3.0, None], [4.0, 10.0]], columns=list('AB'))\n        >>> df\n             A     B\n        0  2.0   1.0\n        1  3.0   NaN\n        2  4.0  10.0\n\n        By default, iterates over rows and finds the sum in each column.\n\n        >>> df.cumprod()\n              A     B\n        0   2.0   1.0\n        1   6.0   NaN\n        2  24.0  10.0\n\n        It works identically in Series.\n\n        >>> df.A.cumprod()\n        0     2.0\n        1     6.0\n        2    24.0\n        Name: A, dtype: float64\n        "
    return self._apply_series_op((lambda psser: psser._cumprod(skipna)), should_resolve=True)