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 值,这是因为空值与任何其他值之间的乘积都只能是空值。

