You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas基于初始值计算累计乘积,求可替代循环的高效实现方案

解决方案

你要实现的是累计乘积计算,直接使用pandas/numpy内置的向量化累计乘积函数cumprod即可,完全不需要写Python循环,底层为C实现,处理百万级以上行的数据集时性能比原生循环高数百倍。

核心代码仅需一行:

df['Total'] = 1000 * df['Change'].cumprod()

完整可运行示例:

import pandas as pd
import numpy as np

changes = [0.97,1.02,1.1,0.88,1.01 ]
df = pd.DataFrame()
df['Change'] = changes

# 替换原有循环的一行代码
df['Total'] = 1000 * df['Change'].cumprod()

print(df)

运行输出和你原有循环结果完全一致:

Change      Total
0    0.97   970.000000
1    1.02   989.400000
2    1.10  1088.340000
3    0.88   957.739200
4    1.01   967.316592

如果需要处理超大规模数据集,可以直接调用numpy层面的cumprod,减少pandas的开销,写法如下:

df['Total'] = 1000 * np.cumprod(df['Change'].to_numpy())

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:27:01