我有两个数据流,都是一系列(时间戳,值)元组。IE:
[(2013-04-03T22:16:36+0000, 2334.5), (2013-04-03T22:46:36+0000, 43543.23), ...]
这个想法是其中一个将是“首选”,一个不是,我想创建一个单一的时间序列,它是可用时较高偏好流的结果,而在没有时回退到最不优选的流。
我的想法是将两个流中的值的时间戳放入存储桶中,并将存储桶用作 DataFrame 的索引,每个流都有一个列,每个存储桶中都有一个 (timestamp, value) 元组列表。然后我可以只遍历每个桶,然后选择得分最高的那个。
数据框看起来像这样:
timestamp stream1 stream2
2013-04-03 00:00:00 [(2013-04-03T00:16:36+0000, 2334.5), [(2013-04-03T00:17:36+0000, 2314.5)]
(2013-04-03T00:17:36+0000, 2314.5)]
2013-04-03 00:30:00 [(2013-04-03T00:43:44+0000, 43543.23), [(2013-04-03T00:47:36+0000, 2364.5)]
(2013-04-03T00:54:24+0000, 4443.23)]
2013-04-03 01:00:00 [] [(2013-04-03T01:01:30+0000, 34.34)]
2013-04-03 01:30:00 [(2013-04-03T01:35:32+0000, 238734.3)] [(2013-04-03T01:45:32+0000, 238734.3)]
在这种情况下,时间戳已被放入每半小时一次的存储桶中,并且 stream1 是首选流。对于 00:00 的存储桶,将选择 stream1 中的两个点,对于 00:30 的存储桶,将选择流 1 中的两个点,对于 01:00 的存储桶,将选择 stream2 中的单个点stream1 没有数据,对于 01:30 的存储桶,将选择 stream1 中的单个数据点,因为它是首选流。
我该怎么做呢?我尝试创建数据框并使用resample('h', how='count')
拆分为每小时计数,并使用groupby
, 但不能完全将时间戳放入存储桶并为每个存储桶的每个流创建值列表。