在大熊猫数据框架时间内滚动平均值



我正在使用pandas处理某些时间表数据。我有以下格式的数据框架:

               Date      Time  Reading
552726   2016/08/01   0: 0: 0    17.28
552727   2016/08/01   0: 0: 5    17.28
552728   2016/08/01   0: 0:10    17.21
552729   2016/08/01   0: 0:15    17.16
552730   2016/08/01   0: 0:20    17.11
552731   2016/08/01   0: 0:25    17.08
552732   2016/08/01   0: 0:30    17.18
552733   2016/08/01   0: 0:35    17.18
etc...

我想平均阅读列,以便需要10分钟的窗口并计算平均值,并且我想在整个时间序列上移动此窗口。然后,我希望将数据框架与新的平均值以及时间戳更新,因此看起来像这样:

           Date       Time      Reading
552726   2016/08/01   0: 0: 0    17.30
552727   2016/08/01   0: 10:0    17.35
552728   2016/08/01   0: 20:0    17.20
etc...

在熊猫中做到这一点的最佳方法是什么?我尝试了滚动平均方法为滚动窗口设置频率。但是后来我必须自己重建数据框架,并自己使用新的时间戳,我认为有一种更清洁,更轻松的方法可以做到这一点。

谢谢,请告诉我是否可以更好地澄清一切。

给定数据,说我想平均计算15秒的间隔。我只是做到了:

#frame contains your data  
n_obs = 3
result = frame.rolling(window = n_obs, min_periods = 1).mean().iloc[::n_obs,:]
#          Date     Time    Reading
# 0  2016/08/01  0: 0: 0  17.280000
# 3  2016/08/01  0: 0:15  17.216667
# 6  2016/08/01  0: 0:30  17.123333 

主要"技巧"是选择n_ob的观测值倍数。

这应该使用n_obs = 120对您有用,尽管这意味着计算比实际需要更多的平均值。

最新更新