我有一个带有值的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
这可能吗?
谢谢
答案 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