2015-09-22 63 views
0

我有原始数据的第一表,只有两列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 
... 

正如你所看到的那样,这些运行并不是连续的:大量的温度测量不属于任何运行。数据比期间多得多。

我需要做的是计算每次运行的平均温度,对属于运行的所有温度测量进行平均。我猜想要做的第一步是加入这两个表格,但我无法表达startstop之间的谓词“time”。建议?

回答

0

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

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

+0

是的,它类似,但实际上我不知道我需要合并这两个表。我只需要平均水平。我不在乎测量值不适合任何时间间隔 –

+0

用第一个表格中的每行标记一个interval_id后,就可以计算出每个箱子的平均值: df.groupby(' (我想这可能是一个好主意,首先删除任何不适合任何时间间隔的行)。 – DalekSec

+0

当然,但它似乎并不是我的最佳解决方案。例如,现在我正在做相反的事情:我遍历周期表,并在每个周期查找匹配的数据,并累积数据以计算均值。不需要连接。 –