按自定义时间段分组

时间:2015-09-22 09:36:07

标签: join pandas time group-by

我有第一个包含原始数据的表格,只有两列timetemperature

                            time  temperature
40953 2015-01-01 12:00:00.493000     88.75951
40954 2015-01-01 12:01:00.494000     88.76033
40955 2015-01-01 12:02:00.495000     88.75979
40956 2015-01-01 12:03:00.480000     88.75938
40957 2015-01-01 12:04:00.496000     88.75944
40958 2015-01-01 12:05:00.497000     88.76046
40959 2015-01-01 12:06:00.560000     88.76008
40960 2015-01-01 12:07:00.498000     88.75940
40961 2015-01-01 12:08:00.484000     88.75938
40962 2015-01-01 12:09:00.484000     88.75933
...

然后我有第二张表,其中包含数据周期。

                     start                stop
run                                           
248523 2015-01-05 16:13:09 2015-01-05 17:42:17
248529 2015-01-05 17:47:03 2015-01-05 18:29:27
248530 2015-01-05 18:30:24 2015-01-05 18:33:24
248531 2015-01-05 18:39:31 2015-01-05 18:40:31
248532 2015-01-05 18:43:57 2015-01-06 09:00:17
...

正如您所看到的那样,这些运行并不是连续的:很多温度测量都不属于任何运行。有比期更多的数据。

我需要做的是计算每次运行的平均温度,平均属于运行的所有温度测量值。我想第一步要加入这两个表,但我无法在timestart"之间表达谓词" stop。建议?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,会回答有关不规则时间间隔的类似问题here

使用np.searchsorted的for循环和更快的方法有一个缓慢的方法。在您的情况下,我认为对于不适合任何时间间隔的样本,您需要一个额外的interval_id类别。这有用吗?