热线电话:13121318867

登录
2019-03-01 阅读量: 3788
计算pandas数据框问题

我在python中创建了一个具有多列的基本pandas数据帧。我创建的第一列是来自多列的时间戳,其中包含日期时间信息。其他列只是每个相应时间的数据。

我想每6小时得到这些值的平均值,然后将值绘制为我用其他数据创建的折线图中的文本,但是在图形图的顶部(所以在行内)。

我尝试了多种方法,我似乎无法弄清楚如何从列中获得6小时的平均值,更不用说去绘制值的步骤了。

具体来说,我只需要2个列的6小时平均值,这两个用于线图。对于解决方案,在这种情况下,哪一个并不重要。

以防万一有必要。以下是用于创建datetime列的代码。

#convert first time columns into one datetime column

df['datetime'] = pd.to_datetime(df[['year', 'month', 'day', 'hour', 'minute', 'second']])

数据如下所示:

267 2019-02-08 15:25:23 12.2 19.2 20.6 ... 22.4

268 2019-02-08 15:52:48 11.7 16.8 17.8 ... 19.2

269 2019-02-08 16:29:23 12.0 15.6 16.2 ... 17.0

270 2019-02-08 16:47:41 11.9 15.6 16.1 ... 16.7

271 2019-02-08 17:33:23 11.1 15.2 15.9 ... 16.7

272 2019-02-08 17:51:39 10.8 15.0 15.7 ... 16.5

273 2019-02-08 18:28:14 10.7 14.3 14.9 ... 15.8

274 2019-02-08 18:46:31 10.8 14.2 14.7 ... 15.4

275 2019-02-08 19:32:13 10.8 12.1 12.6 ... 13.1

276 2019-02-08 19:50:33 10.1 11.8 12.3 ... 12.9

277 2019-02-08 20:18:01 8.6 10.6 11.1 ... 11.8

278 2019-02-08 20:44:24 8.3 10.5 11.1 ... 12.0

279 2019-02-08 21:30:08 9.1 10.4 11.1 ... 12.3

280 2019-02-08 21:48:26 9.0 10.4 11.2 ... 12.4

281 2019-02-08 22:34:11 9.2 11.5 12.4 ... 13.4

282 2019-02-08 22:52:30 8.6 12.5 13.4 ... 14.3

283 2019-02-08 23:29:05 8.8 12.6 13.2 ... 14.2

284 2019-02-08 23:47:23 9.3 12.2 12.8 ... 13.7

285 2019-02-09 00:33:07 9.1 10.3 11.3 ... 12.5

286 2019-02-09 00:51:23 7.8 8.5 9.5 ... 10.9

287 2019-02-09 01:28:10 0.8 1.2 1.9 ... 3.0

288 2019-02-09 01:46:50 0.6 1.2 1.9 ... 3.1

任何帮助,将不胜感激。

0.0000
7
关注作者
收藏
评论(1)

发表评论
啊啊啊啊啊吖
2019-03-01

可以像这样计算6h的平均值:

df.set_index('datetime').resample('6h').mean()

这是每6小时一个值。如果你想要滚动的意思,你会想要结账pd.DataFrame.rolling

0.0000 0 0 回复