我有以下数据:
AdjClose Chg RM Target
date
2014-01-16 41.733862 0.002045 0 NaN
2014-01-17 41.695141 -0.000928 1 NaN
2014-01-21 42.144309 0.010773 1 NaN
2014-01-22 41.803561 -0.008085 1 NaN
2014-01-23 41.640931 -0.003890 0 3.0
2014-01-24 41.586721 -0.001302 0 3.0
2014-01-27 41.323416 -0.006331 0 2.0
2014-01-28 41.710630 0.009370 1 2.0
2014-01-29 41.780328 0.001671 0 1.0
2014-01-30 42.701896 0.022057 0 1.0
我相信有一个简单的方法可以做到这一点,但我还没有弄清楚。对于每一天,我需要看看有多少次在过去的n天,有一个向上/向下或向下/向上的运动。你知道吗
我丑陋的解决方案是为5天的目标做以下事情:
dd['RM']=0
dd['RM'][((dd['Chg']>0) & (dd['Chg'].shift(1)<0))|
((dd['Chg']<0) & (dd['Chg'].shift(1)>0))] = 1
dd['Target']=pd.rolling_sum(dd['RM'],window=5)
然后在前n天做一个滚动加总。你知道吗
我希望有人能给我一个更优雅的解决方案。非常感谢。你知道吗
我会像你做的一样做一个
rolling_sum()
,尽管我认为当符号改变时,向上/向下和向下/向上很容易被测量为:相关问题 更多 >
编程相关推荐