提前道歉。我对python很陌生。我创建了一个用日期时间戳索引的pandas df。我想根据特定列和下一行中的同一列遍历所有具有条件的行。根据下面的示例,我想根据绝对值(例如 3)检查“Streak”列,然后检查下一行以查看 Streak 列是否变为负值。
由于时间戳索引,我正在努力查看下一行。我已经尝试过.shift()无数次尝试使用loc和iloc以及Timedelta。他们对后者的问题是每行的时间戳之间没有一致的差异。
我的 df 看起来像
Security Difference Buy/Sell Streak Price
Date
2019-02-25 2330 500.0 1 1 238.0
2019-02-26 2330 400.0 1 2 239.0
2019-02-27 2330 200.0 1 3 239.5
2019-03-05 2330 -600.0 -1 -1 233.0
2019-03-06 2330 190.0 1 1 234.0
我尝试过但失败的代码是
streaklength = 3
for index, row in mergeddf.iterrows():
currentrow = mergeddf.index.get_loc(index)
If (mergeddf.iloc[currentrow,’Streak’] >= streaklength & (mergeddf.iloc[Currentrow + 1, ‘Streak’]) == -1:
Do something
编辑 - 轮流输出我想获得原始行的“价格”列和固定行数后的列的价格价格并返回该比率。
因此,对于固定行移动 n=2 的原始示例。我想返回一个变量 ouput1 (239.5) 和 ouput2 (234) 并返回 output1/output2 的比率
一只名叫tom的猫
相关分类