“我正试图写一个程序,使用熊猫数据.rsi并遍历此列。如果rsi>;70,我想检查下n个数据点的rsi是否为60,如果do和rsi再次超过70,我想在名为数据.RSIFI““
总而言之,问题是当一个条件已经满足(但不再处于相同的状态)时,在接下来的n行中寻找一个新的条件
交叉部分只是另一个条件,即-1或1。你知道吗
for i in data.index:
val = data.get_value(i,'rsi')
if val >70 and data.get_value(i, 'cross_ov_un') == 1:
for n in range(40):
if val.shift(n) < 60:
for n in range(40):
if val.shift(n) > 70:
data.loc[i,'RSIFI']= 1
这不起作用,其中一个问题是时间戳不能移动。你知道吗
数据外观示例:
RSIFI cross_ov_un rsi
date
2019-01-14 09:00:00 0 1 40.716622
2019-01-14 10:00:00 0 1 40.304055
2019-01-14 11:00:00 0 1 46.000142
2019-01-14 12:00:00 0 1 44.732117
2019-01-14 13:00:00 0 1 40.476486
2019-01-14 14:00:00 0 1 44.553255
2019-01-14 15:00:00 1 1 70.540997
2019-01-14 16:00:00 0 1 65.734665
2019-01-14 17:00:00 0 1 70.383329
2019-01-14 18:00:00 1 1 71.235720
2019-01-14 19:00:00 0 1 64.735780
2019-01-14 20:00:00 0 1 62.017401
2019-01-14 21:00:00 0 1 59.410495
2019-01-14 22:00:00 0 1 66.339052
2019-01-14 23:00:00 1 1 71.217073
2019-01-15 00:00:00 1 1 74.982245
2019-01-15 01:00:00 0 1 57.951364
2019-01-15 02:00:00 0 1 56.833347
我希望它看起来如何的例子
RSIFI cross_ov_un rsi
date
2019-01-14 09:00:00 0 1 40.716622
2019-01-14 10:00:00 0 1 40.304055
2019-01-14 11:00:00 0 1 46.000142
2019-01-14 12:00:00 0 1 44.732117
2019-01-14 13:00:00 0 1 40.476486
2019-01-14 14:00:00 0 1 44.553255
2019-01-14 15:00:00 0 1 70.540997
2019-01-14 16:00:00 0 1 65.734665
2019-01-14 17:00:00 0 1 70.383329
2019-01-14 18:00:00 0 1 71.235720
2019-01-14 19:00:00 0 1 64.735780
2019-01-14 20:00:00 0 1 62.017401
2019-01-14 21:00:00 0 1 59.410495
2019-01-14 22:00:00 0 1 66.339052
2019-01-14 23:00:00 1 1 71.217073
2019-01-15 00:00:00 0 1 74.982245
2019-01-15 01:00:00 0 1 57.951364
2019-01-15 02:00:00 0 1 56.833347
问题是
.loc
用于访问一组行,而.at
方法用于访问数据帧的单个索引的值。你知道吗相关问题 更多 >
编程相关推荐