Python 2.7 时间序列上的滚动平均

Python 2.7 时间序列上的滚动平均,python-2.7,pandas,Python 2.7,Pandas,我试图计算timeseries数据上每个窗口10分钟的滚动平均值。我有以下格式的数据框: Date Time Reading 0 2016/08/01 0: 0: 0 7.297 1 2016/08/01 0: 0: 1 7.047 2 2016/08/01 0: 0: 2 6.826 3 2016/08/01 0: 0: 3 6.641 4 2

我试图计算timeseries数据上每个窗口10分钟的滚动平均值。我有以下格式的数据框:

               Date      Time  Reading
0        2016/08/01   0: 0: 0    7.297
1        2016/08/01   0: 0: 1    7.047
2        2016/08/01   0: 0: 2    6.826
3        2016/08/01   0: 0: 3    6.641
4        2016/08/01   0: 0: 4    6.694
5        2016/08/01   0: 0: 5    7.055
6        2016/08/01   0: 0: 6    7.676
7        2016/08/01   0: 0: 7    8.840
8        2016/08/01   0: 0: 8    9.150
9        2016/08/01   0: 0:10    8.790
10       2016/08/01   0: 0:11    8.840
11       2016/08/01   0: 0:12    8.650
12       2016/08/01   0: 0:13    8.280
13       2016/08/01   0: 0:14    7.834
14       2016/08/01   0: 0:15    7.897
15       2016/08/01   0: 0:16    7.828
16       2016/08/01   0: 0:17    7.964
17       2016/08/01   0: 0:18    8.270
18       2016/08/01   0: 0:19    8.310
19       2016/08/01   0: 0:20    8.200
20       2016/08/01   0: 0:21    8.380
21       2016/08/01   0: 0:22    8.460
22       2016/08/01   0: 0:23    8.400
23       2016/08/01   0: 0:24    8.060
24       2016/08/01   0: 0:25    8.040
25       2016/08/01   0: 0:26    8.690
26       2016/08/01   0: 0:27    9.090
27       2016/08/01   0: 0:29    8.750
28       2016/08/01   0: 0:30    8.670
如您所见,时间分辨率为1秒。然而,在样本26和27之间,您可以看到分辨率为2秒。我使用的是滚动法,窗口=600,这就是为什么我意识到我的所有数据实际上没有1秒的分辨率。我对pandas不熟悉,所以我去查看了文档,发现在最新的pandas版本中,可以使用实际时间作为滚动平均值的窗口,如下所示:

df.resample('10min').mean()
这对我不起作用,因为我认为我的时间戳不是熊猫时间戳格式。我如何操作数据以便pandas识别我的时间戳?或者,对于如何解决我的问题,还有其他建议吗


谢谢大家!

我不确定Pandas是否能正确解析您的时间戳(小时分秒的通常表示形式是
HH:MM:SS
),但您可以尝试

df['timestamp'] = pd.to_datetime(df.pop('Date') + ' ' + df.pop('Time').str.replace(' ',''))
# check that this variable contains the correct timestamp

df.set_index('timestamp', inplace = True)

使用
df['Timestamp']=pd.to_datetime(df.pop('Date')+''+df.pop('Time').str.replace('')
如果您想正确解析它,请使用
pd.to_datetime()。成功了。我有一个问题,为什么str.replace('',')???