我遇到了一个问题,即我拥有一组数据,然后我想计算10分钟内的平均速度。因此,假设我有以下数据:
Timestamp Category ... Status Speed
0 2013-08-14 22:15:00 1 ... 1 10
1 2013-08-14 22:15:01 1 ... 1 10
2 2013-08-14 22:15:02 1 ... 0 10.1
3 2013-08-14 22:15:03 1 ... 1 10.1
4 2013-08-14 22:15:04 1 ... 1 12
5 2013-08-14 22:15:05 1 ... 0 12
6 2013-08-14 22:15:06 1 ... 1 13
7 2013-08-14 22:15:07 1 ... 0 12
8 2013-08-14 22:15:08 1 ... 1 11.2
35999 2013-08-23 23:35:00 0 ... 1 14.3
据我所知,我可以使用pandas重采样轻松计算10分钟内的平均值,就像这样:
df_mean = pd.DataFrame(df.resample('10Min', on='Timestamp')['speed'].mean())
这里真正的问题是,我想从22:15:00开始取平均值,但是,当我打开df_mean时,得到的结果是这样的:
2017-07-23 22:10:00 13.835333
2017-07-23 22:20:00 12.182766
2017-07-23 22:30:00 11.426791
2017-07-23 22:40:00 11.776899
2017-07-23 22:50:00 12.027970
2017-07-23 23:00:00 13.651600
2017-07-23 23:10:00 14.031400
2017-07-23 23:20:00 12.182766
2017-07-23 23:30:00 11.334857
实际上,我会从22:15:00开始直到23:35:00,所以我想要实现的结果将是这样的:
2017-07-23 22:15:00 13.835333
2017-07-23 22:25:00 12.182766
2017-07-23 22:35:00 11.426791
2017-07-23 22:45:00 11.776899
2017-07-23 22:55:00 12.027970
2017-07-23 23:05:00 13.651600
2017-07-23 23:15:00 14.031400
2017-07-23 23:25:00 12.182766
2017-07-23 23:35:00 11.334857
答案 0 :(得分:1)
以下是您所追求的吗?
df_mean = pd.DataFrame(df.resample('10Min', on='Timestamp', loffset='5min')['speed'].mean())
来自docs:
loffset:时间增量
调整重新采样的时间标签