使用Pandas在特定小时刻绘制均值和标准差
我有一个Pandas的数据表,格式如下:
Ozone CellT CellP FlowRate
Date/Time
10/06/14 15:49:57 40.4 32.6 978.6 2297
10/06/14 15:54:57 44.0 32.7 978.6 2267
10/06/14 15:59:57 44.7 32.8 978.6 2249
10/06/14 16:04:57 45.0 32.9 978.6 2262
10/06/14 16:09:57 45.0 32.9 978.6 2286
我想把它画成一个图,显示每小时的臭氧平均值和时间戳,并且在图上加上标准差的上下范围。
现在,当我查看当前的臭氧读数时,x轴(时间戳)上显示的时间是随机的,比如“10/06/14 15:49:57”。我希望每个x轴的刻度标记都显示在每天的12:00:00。
我该怎么做才能把过去一小时的平均值和时间戳画出来,并且在每天的12:00:00处有刻度标记呢?
编辑:
以下的代码可以用来计算每小时的平均值和标准差。现在我想做的是填充这些值,并且用正确的刻度标记来绘图。
df['OzoneHourlyMean'] = df.Ozone.resample('H', how='mean')
df['OzoneHourlyStd'] = df.Ozone.resample('H', how='std')
上面的命令生成的数据格式如下:
2014-06-10 15:00:00 43.033333
2014-06-10 16:00:00 44.291667
2014-06-10 17:00:00 44.691667
2014-06-10 18:00:00 45.175000
2014-06-10 19:00:00 44.433333
1 个回答
0
针对这个问题,我觉得这是编辑后剩下的内容。
我该如何绘制过去一小时的平均值与每天中午12点的时间戳的关系图?
我觉得你只需要在每天中午12点设置刻度标记。你可以自己生成一个刻度的列表,然后使用这些刻度。使用pandas可能会影响x轴的刻度,所以我建议直接使用matplotlib。对你来说,可能可以这样做:
tickv = pd.date_range('10/06/2014 12:00:00', periods=5, freq = 'D')
plt.plot(df.index, df['OzoneHourlyMean'])
plt.xticks(tickv)