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

如何基于DataFrame中的每日涨跌幅计算累计金额?

问题描述

原始DataFrame如下:

datepercent_change
2022/12/012
2022/12/02-1
2022/12/023

假设初始值为100,需新增一列cumulative value展示截至当前行的累计值,预期输出如下:

datepercent_changecumulative value
2022/12/012102
2022/12/02-1100.98
2022/12/023104.0094
解决方案

可以利用Pandas的cumprod()方法计算累计乘积,结合百分比转系数的逻辑实现需求,代码如下:

import pandas as pd

# 构造原始数据
df = pd.DataFrame({
    'date': ['2022/12/01', '2022/12/02', '2022/12/02'],
    'percent_change': [2, -1, 3]
})

# 计算累计值
initial_value = 100
df['cumulative value'] = initial_value * (1 + df['percent_change'] / 100).cumprod()

# 输出结果
print(df)

逻辑说明

  1. (1 + df['percent_change'] / 100):将百分比变化转换为增长系数,例如2%对应1.02,-1%对应0.99;
  2. cumprod():对增长系数列计算累计乘积,得到从初始值开始的累计增长倍数;
  3. 乘以初始值100后,即可得到每行的累计值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:40:31