【Pandas】pandas Series cumprod
Pandas2.2 Series
Computations descriptive stats
方法 | 描述 |
---|---|
Series.abs() | 用于计算 Series 中每个元素的绝对值 |
Series.all() | 用于检查 Series 中的所有元素是否都为 True 或非零值(对于数值型数据) |
Series.any() | 用于检查 Series 中是否至少有一个元素为 True 或非零值(对于数值型数据) |
Series.autocorr() | 用于计算 Series 的自相关系数 |
Series.between() | 用于检查 Series 中的每个元素是否在指定的两个值之间(包括边界值) |
Series.clip() | 用于将 Series 中的元素限制在指定的上下限之间 |
Series.corr() | 用于计算两个 Series 之间的相关系数 |
Series.count() | 用于计算 Series 中非 NA/null 值的数量 |
Series.cov(other[, min_periods, ddof]) | 用于计算两个 Series 之间的协方差 |
Series.cummax([axis, skipna]) | 用于计算 Series 中元素的累积最大值 |
Series.cummin([axis, skipna]) | 用于计算 Series 中元素的累积最小值 |
Series.cumprod([axis, skipna]) | 用于计算 Series 中元素的累积乘积 |
pandas.Series.cumprod
pandas.Series.cumprod
方法用于计算 Series 中元素的累积乘积。它会遍历 Series 的每个元素,并在每个位置返回到目前为止的所有元素的乘积。缺失值(如 NaN)会被跳过,但在第一个非缺失值之前的位置,结果将保持为 NaN。
参数
- axis: {0 or ‘index’}, 默认为 0
- 只接受 0 或 ‘index’,因为 Series 只有一个轴。
- skipna: bool, 默认为 True
- 是否跳过缺失值(NaN)。如果为 False,则在遇到 NaN 时,累积乘积也将为 NaN。
- *args, **kwargs: 其他参数,通常不需要指定。
返回值
Series
: 包含累积乘积的新 Series
示例及结果
示例 1: 默认参数(skipna=True
)
import pandas as pd
# 创建一个包含一些数值和缺失值的 Series
s = pd.Series([1, 2, None, 3, 4, None, 5])
# 使用 cumprod 方法计算累积乘积,默认 skipna=True
cumprod_result = s.cumprod()
print(f"Original Series: {s}")
print(f"Cumulative Product (skipna=True): {cumprod_result}")
输出结果:
Original Series: 0 1.0
1 2.0
2 NaN
3 3.0
4 4.0
5 NaN
6 5.0
dtype: float64
Cumulative Product (skipna=True): 0 1.0
1 2.0
2 NaN
3 6.0
4 24.0
5 NaN
6 120.0
dtype: float64
在这个例子中,原始 Series s
包含一些数值和缺失值。使用 cumprod
方法后,返回的结果是一个新的 Series,其中每个位置的值是到该位置为止的所有元素的乘积。注意:
- 在第一个非缺失值之前的位置(即索引 2),结果为 NaN。
- 在索引 3 处,累积乘积为 6(1 * 2 * 3)。
- 在索引 4 处,累积乘积为 24(1 * 2 * 3 * 4)。
- 在索引 5 处,由于当前值为 NaN,累积乘积保持为上一个非缺失值的乘积(即 24)。
- 最后,在索引 6 处,累积乘积更新为 120(1 * 2 * 3 * 4 * 5)。
示例 2: skipna=False
# 使用 cumprod 方法计算累积乘积,skipna=False
cumprod_result_no_skipna = s.cumprod(skipna=False)
print(f"Cumulative Product (skipna=False): {cumprod_result_no_skipna}")
输出结果:
Cumulative Product (skipna=False): 0 1.0
1 2.0
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
dtype: float64
在这个示例中,当 skipna=False
时,累积乘积在遇到第一个 NaN 后将保持为 NaN。
总结
axis
: 对于 Series,axis
参数默认为 0 或 ‘index’,且不能更改。skipna
: 控制是否跳过 NaN 值,默认为 True。
希望这能帮助你更好地理解 Series.cumprod
方法的参数和行为。