如何对熊猫数据框中的前瞻性数据求平均

时间:2019-01-10 16:42:33

标签: python pandas

我有一个带有值的df:例如。

                         jpy3m      jpy1w
timestamp    

2019-01-09 00:00:00      -45         -25
2019-01-08 00:00:00      -48         -31
2019-01-07 00:00:00      -51         -27
2019-01-04 00:00:00      -46         -25
...
2016-01-06 00:00:00      -61         -26
2016-01-05 00:00:00      -62         -22
2016-01-04 00:00:00      -57         -21

该指数从今天到2016年初。仅工作日。

我希望处理但无法处理的是,在可能的每一天中,获取jpy3m中的值,并减去(jpy1w在同一天的值的平均值,但是,接下来11周内jpy1w的值)

例如考虑2016-01-04

jpy3m的取值= -57 在(2016-01-04,2016-01-11(以后1w之后),2016-01-19(以后2w(不是一个很好的工作日)),2016-01-25(以后3w)上平均jpy 1w .... etc,直到2016-03-25(11w之后)) 可以说平均为-25

然后取-25-(-57)= +32,所以+32是1月4日的值

这将进入新列df ['result']

并重复1月5日,以此类推。

我知道最近3个月没有结果,将会是np.nan

这可能吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我假设如果一天不是一个好的工作日,那么该记录就不在您的数据集中。如果它在您的数据集中,则可以删除这些记录。

按时间降序对记录进行排序。

我们正在将当前值与下一个第7,第14,....,第77个值进行平均。

avgs = df['jpy1w'].copy()

for i in range(11):
    avgs = df['jpy1w'].shift(7*(i+1)) + avgs

avgs = avgs/12
df['result'] = df['jpy3m'] + avgs