我正在尝试有效地计算Pandas DataFrame的每列的指数衰减的运行总和.DataFrame包含世界上每个国家/地区的每日分数.DataFrame看起来像这样:
AF UK US
2014-07-01 0.998042 0.595720 0.524698
2014-07-02 0.380649 0.838436 0.355149
2014-07-03 0.306240 0.274755 0.964524
2014-07-04 0.396721 0.836027 0.225848
2014-07-05 0.151291 0.677794 0.603548
2014-07-06 0.558846 0.050535 0.551785
2014-07-07 0.463514 0.552748 0.265537
2014-07-08 0.240282 0.278825 0.116432
2014-07-09 0.309446 0.096573 0.246021
2014-07-10 0.800977 0.583496 0.713893
Run Code Online (Sandbox Code Playgroud)
我不知道如何在不迭代数据帧的情况下计算滚动总和(衰减),因为我需要知道昨天的分数来计算今天的分数.但是要计算昨天的分数,我需要知道前天的分数等等.这是我一直在使用的代码,但我想要一个更有效的方法来解决它.
for j, val in df.iteritems():
for i, row in enumerate(val):
df[j].iloc[i] = row + val[i-1]*np.exp(-0.05)
Run Code Online (Sandbox Code Playgroud)