pandas.DataFrame.cumprod #

数据框。cumprod ( axis = None , skipna = True , * args , ** kwargs ) [来源] #

返回 DataFrame 或 Series 轴上的累积乘积。

返回包含累积乘积的相同大小的 DataFrame 或 Series。

参数
{0 或 'index', 1 或 'columns'}, 默认 0

轴的索引或名称。 0 相当于无或“索引”。对于系列,此参数未使用,默认为 0。

Skipna布尔值,默认 True

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

*args,**kwargs

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

返回
系列或数据框

返回Series或DataFrame的累积乘积。

也可以看看

core.window.expanding.Expanding.prod

类似的功能但忽略NaN值。

DataFrame.prod

通过 DataFrame 轴返回乘积。

DataFrame.cummax

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

DataFrame.cummin

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

DataFrame.cumsum

返回 DataFrame 轴上的累积和。

DataFrame.cumprod

返回 DataFrame 轴上的累积乘积。

例子

系列

>>> 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

数据框

>>> 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