Python 2.7 时间序列上的滚动平均
我试图计算timeseries数据上每个窗口10分钟的滚动平均值。我有以下格式的数据框: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
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('',')???