看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas
的 cumprod()
方法用于计算 DataFrame
或 Series
中元素的累积乘积。累积乘积是指从第一个元素开始,逐个元素进行乘积,直到当前元素位置。
DataFrame.cumprod(axis=0, skipna=True, *args, **kwargs)
返回DataFrame或Series轴上的累积乘积。返回包含累积乘积的相同大小的DataFrame或Series。
axis
: 可选。默认值为 0
,表示按列进行计算。如果设置为 1
,则按行进行计算。skipna
: 可选。布尔值,默认值为 True
。如果为 True
,则跳过 NA/null 值。如果为 False
,任何 NA 值会导致计算结果也为 NA。*args, **kwargs
: 其他关键字没有效果,但可能会被接受以与NumPy兼容。返回一个与原始 DataFrame
或 Series
形状相同的对象,其中每个元素表示到当前元素位置为止的累积乘积。
假设有一个包含多个变量的数据集,我们希望计算这些变量的累积乘积。
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=None或axis='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
'''
这些结果帮助我们理解每个变量在数据集中的累积乘积随时间的变化情况。
更新时间:2024-08-08 09:01:13 标签:pandas python cumprod 累积 乘积