【发布时间】:2019-08-17 12:08:02
【问题描述】:
我有被转换成两列数据框的数据。有一个Local Date_Local Time 列和一个Close 列。数据为股票/指数数据。
中的时间戳是按分钟计算的。示例
我的 df 样本
index Local Date_Local Time Close
0 2019-07-31 23:10:00 2980.38
1 2019-07-31 22:21:00 2980.38
并非每天的每一分钟都在索引中。由于这是交易数据,因此包括了晚上或早上的一些时间,但它没有每天的 0:00-23:59。我需要做两件事,但这个问题是关于第一件事的。
交易并非每天都在完全相同的时间开始或停止。该数据还涵盖了几个月,这意味着时区/时钟的变化可能会改变交易开始的相对时间。
但是,当交易停止时Close 将开始重复,当它开始时Close 将停止重复。
来自原始数据的样本(在 df 中,它看起来如上)
30-Jul-2019,15:32,"3,003.01"
30-Jul-2019,15:31,"3,004.43" <--- this is where trading began
29-Jul-2019,23:14,"3,020.97" <-- repeating price while market was closed
29-Jul-2019,22:21,"3,020.97"
29-Jul-2019,22:20,"3,020.97"
如果我假设 “收盘价在 4 分钟内不会一直保持到小数点后两位”,我该如何过滤这个数据框以包含每个交易日
- 从第一个新价格开始(例如上面的 @ 15:31)
- 到价格的最后一次变化,也就是重复超过 4 次的价格的第一个实例
(来自原始数据的示例)
29-Jul-2019,22:09,"3,020.97"
29-Jul-2019,22:08,"3,020.97"
29-Jul-2019,22:07,"3,020.97"
29-Jul-2019,22:06,"3,020.97"
29-Jul-2019,22:05,"3,020.97" <-- we want this, first repeating one
29-Jul-2019,22:04,"3,020.98" <-- below this, things still change
29-Jul-2019,22:03,"3,020.97"
29-Jul-2019,22:02,"3,020.94"
29-Jul-2019,22:01,"3,020.89"
时间戳之间的跳转可能会有所帮助,但我无法很好地操作数据帧。
同样的数据将与上面的 df 和下面的示例相同。原始数据是为了显示事情是如何变化的。 Local Date_Local Time 已经是 datetime64[ns] andCloseis alreadyfloat64`
Local Date_Local Time Close
90 2019-07-31 20:52:00 2971.61
91 2019-07-31 20:51:00 2975.38
92 2019-07-31 20:50:00 2981.48
93 2019-07-31 20:49:00 2985.19
在最终结果中,例如 2019-07-29 22:05 将位于 2019-07-30 15:31 的正下方,因为两者之间的所有内容都重复了。
【问题讨论】:
标签: python pandas dataframe datetime