pandas.DataFrame.cumprod — pandas 2.2.3 documentation (original) (raw)
DataFrame.cumprod(axis=None, skipna=True, *args, **kwargs)[source]#
Return cumulative product over a DataFrame or Series axis.
Returns a DataFrame or Series of the same size containing the cumulative product.
Parameters:
axis{0 or ‘index’, 1 or ‘columns’}, default 0
The index or the name of the axis. 0 is equivalent to None or ‘index’. For Series this parameter is unused and defaults to 0.
skipnabool, default True
Exclude NA/null values. If an entire row/column is NA, the result will be NA.
*args, **kwargs
Additional keywords have no effect but might be accepted for compatibility with NumPy.
Returns:
Series or DataFrame
Return cumulative product of Series or DataFrame.
See also
core.window.expanding.Expanding.prod
Similar functionality but ignores NaN
values.
Return the product over DataFrame axis.
Return cumulative maximum over DataFrame axis.
Return cumulative minimum over DataFrame axis.
Return cumulative sum over DataFrame axis.
Return cumulative product over DataFrame axis.
Examples
Series
s = pd.Series([2, np.nan, 5, -1, 0]) s 0 2.0 1 NaN 2 5.0 3 -1.0 4 0.0 dtype: float64
By default, NA values are ignored.
s.cumprod() 0 2.0 1 NaN 2 10.0 3 -10.0 4 -0.0 dtype: float64
To include NA values in the operation, use skipna=False
s.cumprod(skipna=False) 0 2.0 1 NaN 2 NaN 3 NaN 4 NaN dtype: float64
DataFrame
df = pd.DataFrame([[2.0, 1.0], ... [3.0, np.nan], ... [1.0, 0.0]], ... columns=list('AB')) df A B 0 2.0 1.0 1 3.0 NaN 2 1.0 0.0
By default, iterates over rows and finds the product in each column. This is equivalent to axis=None
or axis='index'
.
df.cumprod() A B 0 2.0 1.0 1 6.0 NaN 2 6.0 0.0
To iterate over columns and find the product in each row, use axis=1
df.cumprod(axis=1) A B 0 2.0 2.0 1 3.0 NaN 2 1.0 0.0