2017-10-10 113 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