熊猫滚动意味着时间序列

时间:2017-03-13 20:03:38

标签: python-2.7 pandas

我正在尝试计算时间序列数据中每个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版本中,可以使用实际时间作为滚动平均值的窗口,如下:

df.resample('10min').mean()

这对我不起作用,因为我认为我的时间戳不是pandas时间戳格式。如何操纵我的数据以便熊猫识别我的时间戳?或者,有没有其他建议如何解决我的问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

我不确定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)