python - 在日期时间重新采样并计算平均值
问题描述
我一直面临一个问题,其中我有一组数据,然后,我想计算 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 resample 轻松计算 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
解决方案
下面是你所追求的吗?
df_mean = pd.DataFrame(df.resample('10Min', on='Timestamp', loffset='5min')['speed'].mean())
从文档:
loffset : 时间增量
调整重采样时间标签
推荐阅读
- togaf - TOGAF - 架构存储库是否包含代码?
- python - 如何在不创建窗口的情况下将图像保存到 Gtk 剪贴板?
- javascript - 如何将鼠标悬停在 Antv/G6 的边缘上?
- bash - 如何在最后一个“/”字符之后获取一个字符串?
- flutter - Flutter依赖image_picker在启动时导致应用程序错误
- python - 在 Visual Studio Code 中导入问题
- ethereum - ethers.js 合约实例中没有 safeTransferFrom 函数?
- python - Python:无法按属性搜索
- html - 如何在 Angular 中使用 @Hostbinding 设置动态组件的样式?
- reactjs - 在 IE 11 上反应 Material-ui