我正在使用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对您有用,尽管这意味着计算比实际需要更多的平均值。