使用Pandas计算距离最高点的周期数
我正在使用Pandas中的rolling_max函数:
http://pandas.pydata.org/pandas-docs/stable/computation.html#moving-rolling-statistics-moments
我该如何找出自从价格达到这个高点以来的时间段数量呢?
1 个回答
3
从这里开始:
>>> ts
A 10
B 10
C -5
D -15
E -9
F -8
G -13
H -9
I -15
J -21
dtype: int64
你可以这样做:
>>> rmlag = lambda xs: np.argmax(xs[::-1])
>>> pd.rolling_apply(ts, func=rmlag, window=3, min_periods=0).astype(int)
A 0
B 0
C 1
D 2
E 2
F 0
G 1
H 2
I 1
J 2
dtype: int64
与原始序列和滚动最大值连接在一起:
value roll-max rm-lag
A 10 10 0
B 10 10 0
C -5 10 1
D -15 10 2
E -9 -5 2
F -8 -8 0
G -13 -8 1
H -9 -8 2
I -15 -9 1
J -21 -9 2
[10 rows x 3 columns]