2017-10-10 151 views
1

我有一個數據幀,其中時間戳爲索引,數據的頻率爲10分鐘。計算數據幀中確切小時的間隔平均值

我無法找到一種方法來計算從h - 30minh + 30min的區間內的平均值,其中h都是確切的小時數(點鐘小時數)。

In[1]: date_index = pd.date_range('2015-12-01 00:00:00', freq='10Min', periods=70) 
     df = pd.DataFrame(np.random.rand(70), index= date_index, columns=['Data']) 
     df.head(10) 

Out[1]:     Data 
2015-12-01 00:00:00 0.653885 
2015-12-01 00:10:00 0.605046 
2015-12-01 00:20:00 0.438547 
2015-12-01 00:30:00 0.062426 
2015-12-01 00:40:00 0.415468 
2015-12-01 00:50:00 0.458047 
2015-12-01 01:00:00 0.523140 
2015-12-01 01:10:00 0.736519 
2015-12-01 01:20:00 0.934904 
2015-12-01 01:30:00 0.799523 

我想在使用與df.index的範圍內循環,並尋找每一個確切的時間,然後計算平均爲各地具體小時的間隔,但我不能找到一個簡單的索引一小時內的數據。在熊貓中做這個簡單的方法嗎?謝謝。

回答

3

不確定這裏的確切預期產量,但您可以先對每半小時的數據重新抽樣,然後找到滾動平均值以獲得1.5小時的平均值。

df.resample('30T').mean().rolling(3, center = True).mean() 

    Data 
2015-12-01 00:00:00 NaN 
2015-12-01 00:30:00 0.419649 
2015-12-01 01:00:00 0.427544 
2015-12-01 01:30:00 0.414868 
2015-12-01 02:00:00 0.545400 
2015-12-01 02:30:00 0.643669 
2015-12-01 03:00:00 0.626265 
2015-12-01 03:30:00 0.581142 
2015-12-01 04:00:00 0.508442 
2015-12-01 04:30:00 0.511635 
2015-12-01 05:00:00 0.452952 
2015-12-01 05:30:00 0.473471 
2015-12-01 06:00:00 0.400974 
2015-12-01 06:30:00 0.358676 
2015-12-01 07:00:00 0.244290 
2015-12-01 07:30:00 0.343688 
2015-12-01 08:00:00 0.456954 
2015-12-01 08:30:00 0.548263 
2015-12-01 09:00:00 0.431159 
2015-12-01 09:30:00 0.378981 
2015-12-01 10:00:00 0.407988 
2015-12-01 10:30:00 0.496860 
2015-12-01 11:00:00 0.508232 
2015-12-01 11:30:00 NaN