我有一個簡單的時間序列重採樣時間序列,由datetime值驅動(即,它定期記錄的數據點),Series1
:與給定timedelta和分級或插
datetime,temp
2015-05-28 17:00:00,24.199
2015-05-28 17:15:00,24.465
2015-05-28 17:30:00,24.392
2015-05-28 17:45:00,25.094
2015-05-28 18:00:00,25.239
etc.
和我試圖協調第二時間序列,其由一個事件驅動的(表示爲二進制值0和1),Series2
:
datetime,window
2015-05-28 17:00:00,0.0
2015-05-28 17:55:28,1.0
2015-06-08 07:35:31,0.0
2015-06-08 08:04:30,1.0
2015-06-18 17:11:55,0.0
2015-06-18 18:11:52,1.0
2015-06-19 18:14:09,0.0
etc.
我想協調兩個,即表達事件驅動時間成小時(或小時)值。 我假設這可能需要創建一個Series2
的日期時間索引,它可以匹配Series1
的日期時間索引,並使用範圍爲[0,1]
的值填充窗口列。這些值將來自某種'時間分組',其中計算每個區間花費的時間百分比(該區間由Series1
中後續行之間的日期時間差定義)。
希望這是有道理的。
我一直在使用重採樣與不同的方法嘗試,即 series2_hr = series2.resample('H').bfill()
與.mean
和.last
嘗試,但這些都不給我所需的輸出。
我也曾嘗試插值:
series2_hr = series2.resample('H')
series2_hr = series2_hr.interpolate(method='time')
但同樣沒有運氣。
期望的輸出是窗口值在1的給定時間間隔(比如每小時)的百分比。換句話說,該小時的窗口的平均值(從0到1)。
實施例:由上採樣到一分鐘間隔,與原有的時間序列的條目向前填充
2015-05-28 17:00:00,0.916 (=(17:55 - 17:00)/60)
2015-05-28 18:00:00,1
2015-05-28 19:00:00,1
...
2015-06-08 07:00:00,0.583 (=(07:35 - 07:00)/60))
2015-06-08 08:00:00,0.06 (=(08:04 - 08:00)/60))
2015-06-08 09:00:00,1
2015-06-08 10:00:00,1
...
什麼是期望的輸出? –