Series.cumprod() 方法在 Pandas 中如何工作?

pandasserver side programmingprogramming更新于 2025/5/17 23:37:17

通过在 Pandas Series 构造函数中使用 cumprod() 方法,我们可以找出给定系列对象元素的累积乘积。

cumprod() 方法返回一个与原始输入系列对象长度相同的系列,其中包含累积乘积。

cumprod() 方法中有三个参数,分别是"axis"、"skipna"和其他关键字。"skipna"参数默认用于排除缺失值,如果要包含这些缺失值,则将 skipna 参数设置为"False"。

示例 1

# 导入所需包
import pandas as pd
import numpy as np

# 创建 pandas Series 对象
series = pd.Series([5,np.nan,-2,10])
print(series)

print("Cumulative product: ",series.cumprod())

解释

在下面的例子中,我们计算 Series 的累积乘积。它返回一个 Series,第一个元素不变,第二个元素是第一个和第二个元素的乘积,第三个元素是第二个和第三个元素的乘积,如下所示。

输出

0  5.0
1  NaN
2 -2.0
3 10.0
dtype: float64

Cumulative product:
0    5.0
1    NaN
2  -10.0
3 -100.0
dtype: float64

默认情况下,cumprod() 方法在执行时不包括 Nan 值,因此第一个位置的 Nan 值保持不变。

示例 2

# 导入所需包
import pandas as pd
import numpy as np

# 创建 pandas Series 对象
series = pd.Series([5,-3,np.nan,11,6])
print(series)

print("Cumulative product including NA: ",series.cumprod(skipna=False))

解释

在此示例中,我们通过将 skipna 值设置为 False 来计算 cumprod() 方法。这意味着它在执行时不会忽略 NA/null 值。

输出

0  5.0
1 -3.0
2  NaN
3 11.0
4  6.0
dtype: float64

Cumulative product including NA:
0   5.0
1 -15.0
2   NaN
3   NaN
4   NaN
dtype: float64

在上面的输出块中,我们可以看到给定系列对象的累积乘积。在索引位置"2"之后,我们只能看到 Nan 值,这是因为空值与任何其他值之间的乘积都只能是空值。


相关文章