2015-09-22 66 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

當然,但它似乎並不是我的最佳解決方案。例如,現在我正在做相反的事情:我遍歷週期表,並在每個週期查找匹配的數據,並累積數據以計算均值。不需要連接。 –