我有一个数据框,其中包含日期作为索引和值列,存储连续日期之间的增长百分比(即索引中的日期).假设我想通过在索引的第一个日期设置100个基础然后迭代地应用增长百分比来计算"实际"值.使用cumprod方法很容易.
现在,我想将索引中的最新日期设置为100.因此,我需要为指数中的每个日期计算"逆"增长.用熊猫做一个简单的方法(和pythonic)吗?
问候,
Allia
考虑df
具有10天随机返回的数据帧.
np.random.seed([3,1415]) tidx = pd.date_range('2012-04-01', periods=10) df = pd.DataFrame(dict(A=np.random.rand(10) / 10), tidx) df A 2012-04-01 0.044494 2012-04-02 0.040755 2012-04-03 0.046015 2012-04-04 0.046524 2012-04-05 0.046269 2012-04-06 0.001655 2012-04-07 0.085045 2012-04-08 0.081774 2012-04-09 0.077796 2012-04-10 0.075798
你想使用cumprod
然后除以最后一个值
dcum = df.add(1).cumprod() dcum.div(dcum.iloc[-1]).mul(100) A 2012-04-01 61.539104 2012-04-02 64.047157 2012-04-03 66.994277 2012-04-04 70.111111 2012-04-05 73.355090 2012-04-06 73.476459 2012-04-07 79.725230 2012-04-08 86.244715 2012-04-09 92.954225 2012-04-10 100.000000