当前位置:  开发笔记 > 编程语言 > 正文

熊猫中的'反向'cumprod

如何解决《熊猫中的'反向'cumprod》经验,为你挑选了1个好方法。

我有一个数据框,其中包含日期作为索引和值列,存储连续日期之间的增长百分比(即索引中的日期).假设我想通过在索引的第一个日期设置100个基础然后迭代地应用增长百分比来计算"实际"值.使用cumprod方法很容易.

现在,我想将索引中的最新日期设置为100.因此,我需要为指数中的每个日期计算"逆"增长.用熊猫做一个简单的方法(和pythonic)吗?

问候,

Allia



1> piRSquared..:

考虑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

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有