自熊猫DataFrame滚动52周以来的日子

时间:2017-03-13 15:32:19

标签: python date pandas dataframe

编辑:就在我放弃的时候,我找到了答案here

rmlag = lambda xs: np.argmax(xs[::-1])
df['Open'].rolling(window=5).apply(func=rmlag)

我正在努力解决以下问题:如何向DataFrame添加一列,对于每一行,计算自达到n期高点以来的天数(句点)?

以下是我正在使用的DataFrame示例。我计算了5天的滚动高点

 df['Rolling 5 Day High'] = df['Open'].rolling(5).max()

如何计算每一行自达到5天高点以来的天数?例如,""天数"对于2012-03-16索引的行应该是4,因为该行在2012-03-12达到相应的滚动5天高点14.88。对于2012-03-19指数的下一行,该值应为3,因为该行在2012-03-14达到了14.79的连续5天高点。

             Open  Rolling 5 Day High
Date
2012-03-12  14.88                 NaN
2012-03-13  14.65                 NaN
2012-03-14  14.79                 NaN
2012-03-15  14.41                 NaN
2012-03-16  14.59               14.88
2012-03-19  14.68               14.79
2012-03-20  14.56               14.79
2012-03-21  14.40               14.68
2012-03-22  14.35               14.68
2012-03-23  14.40               14.68
2012-03-26  14.69               14.69
2012-03-27  14.78               14.78
2012-03-28  15.01               15.01
2012-03-29  15.14               15.14
2012-03-30  15.36               15.36
2012-04-02  15.36               15.36
2012-04-03  15.44               15.44
2012-04-04  14.85               15.44
2012-04-05  14.67               15.44
2012-04-09  14.40               15.44
2012-04-10  14.38               15.44
2012-04-11  14.35               14.85
2012-04-12  14.36               14.67
2012-04-13  14.55               14.55
2012-04-16  14.26               14.55

0 个答案:

没有答案