Pandas 带初始值的百分比列累计求和:实现复利累计结果计算
解决方案
你需要实现的是复利式累计增长计算,每期数值基于上一期结果计算,因此使用累计乘积方法cumprod即可达到预期效果:
import pandas as pd # 替换为你实际的DataFrame df = pd.DataFrame({ 'timestamp': ['XXX', 'YYY', 'ZZZ'], 'percentage': [5, -2, 3] }) # 自定义初始值 initial_value = 100 # 计算累计值 df['cum_value'] = (1 + df['percentage'] / 100).cumprod() * initial_value
执行后输出的cum_value列对应结果:
0 105.000 1 102.900 2 105.987
如果你的percentage字段为千分比/基点单位,对应调整/100为/1000//10000即可。如果需要将初始值作为首行插入结果中,可追加以下代码:
df = pd.concat([ pd.DataFrame({'timestamp': ['init'], 'percentage': [0], 'cum_value': [initial_value]}), df ], ignore_index=True)
内容的提问来源于stack exchange,提问作者koyamashinji
相关产品推荐
相关产品推荐

