假设一个 Dataframe 如下所示。我希望向df Dataframe 添加一列,该列获取当前行的价格,并从当前小时/分钟之前5分钟的最后一个索引的价格中减去该价格。我尝试引用minute_df并读取当前小时/分钟,然后从minute_df中提取收盘价,但没有得到有效的解。df索引为datetime 64。
例如,在06:27:12,它应该取此行的价格,减去06:22的最后一个指数的收盘价,因为这是06:27之前5分钟。对于06:27分钟内的每个指数,它应该参考这个收盘价进行计算,直到变成06:28,然后应该减去06:23的最后一个指数。
df
TimeStamp Price Q hour min
2022-10-05 05:30:11.344618-05:00 8636 1 5 30
2022-10-05 05:30:12.647597-05:00 8637 1 5 30
2022-10-05 05:30:20.080559-05:00 8637 1 5 30
2022-10-05 05:30:21.267389-05:00 8637 2 5 30
2022-10-05 05:30:21.267952-05:00 8636 1 5 30
分钟_df
TimeStamp open high low close
2022-10-05 05:30:00-05:00 8636 8645 8635 8645
2022-10-05 05:31:00-05:00 8645 8647 8637 8638
2022-10-05 05:32:00-05:00 8639 8650 8639 8649
2022-10-05 05:33:00-05:00 8648 8652 8648 8649
预期输出是df Dataframe 中的一列,包含当前价格的值-收盘价,或当前分钟前5分钟的最后一个指数的价格。NaN个值,直到有足够的行来回顾这么多个周期。
df ['价格变动']
1条答案
按热度按时间kmpatx3s1#
不确定我是否理解正确,但我尝试了一下
如果
TimeStamp
是列相同的代码,但如果
TimeStamp
是索引注意事项:
NaN
值是什么意思,但是如果您需要向前填充/向后填充它们,则可以使用pd.fillnapandas
函数(如floor
)在旧的panda版本中可能会丢失编辑:我没有注意到
df
已经有hour
和minute
列。您可以使用它来计算floor_ts
(虽然不确定是否更容易/更快)