pandas.DataFrame.cumprod#

DataFrame.cumprod(axis=0, skipna=True, numeric_only=False, *args, **kwargs)[source]#

沿 DataFrame 或 Series 轴返回累积乘积。

返回一个大小相同的 DataFrame 或 Series,其中包含累积乘积。

参数:
axis{0 或 ‘index’, 1 或 ‘columns’}, 默认为 0

轴的索引或名称。0 等同于 None 或 ‘index’。对于 Series,此参数未使用,默认为 0。

skipnabool, 默认 True

排除 NA/null 值。如果整行/整列均为 NA,则结果为 NA。

numeric_onlybool, default False

仅包含浮点数、整数、布尔列。

*args, **kwargs

其他关键字参数没有效果,但可能被接受以与 NumPy 兼容。

返回:
Series 或 DataFrame

返回 Series 或 DataFrame 的累积乘积。

另请参阅

core.window.expanding.Expanding.prod

功能类似,但会忽略 NaN 值。

DataFrame.prod

返回 DataFrame 轴上的乘积。

DataFrame.cummax

返回 DataFrame 轴上的累积最大值。

DataFrame.cummin

返回 DataFrame 轴上的累积最小值。

DataFrame.cumsum

返回 DataFrame 轴上的累积和。

DataFrame.cumprod

返回 DataFrame 轴上的累积积。

示例

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

默认情况下,会忽略 NA 值。

>>> s.cumprod()
0     2.0
1     NaN
2    10.0
3   -10.0
4    -0.0
dtype: float64

要将 NA 值包含在运算中,请使用 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

默认情况下,遍历行并在每列中查找乘积。这等效于 axis=Noneaxis='index'

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

要遍历列并在每行中查找乘积,请使用 axis=1

>>> df.cumprod(axis=1)
     A    B
0  2.0  2.0
1  3.0  NaN
2  1.0  0.0