python - 重采样数据帧时的偏移问题
问题描述
我试图以 1 小时的偏移量每 3 小时重新采样一次数据集。当我尝试它时,时间会偏移 1 小时,并根据需要每 3 小时设置一次,但这些值只是重新采样并且不考虑偏移量
我的尝试看起来像这样
df = pd.read_excel('Raw Data.xlsx')
df['TIME'] = pd.to_datetime(df['TIME'])
df['DATA'] = df['DATA'].astype(float) * 1000
hourly = df.resample('H', on='TIME').mean()
thirdly = df.resample('3H', loffset = '1H', on='TIME').mean()
如图所示,我已经能够进行每小时设置,但是当我尝试使用偏移量创建 3 小时重新采样时,我得到了这个结果
DATA
TIME
2019-07-29 22:00:00 10.777778
2019-07-30 01:00:00 14.055556
2019-07-30 04:00:00 13.333333
2019-07-30 07:00:00 8.722222
2019-07-30 10:00:00 7.333333
...
当我的原始数据看起来像这样
TIME DATA
0 2019-07-29 22:33:34 11.0
1 2019-07-29 22:43:34 10.0
2 2019-07-29 22:53:34 10.0
3 2019-07-29 23:03:34 10.0
4 2019-07-29 23:13:34 10.0
5 2019-07-29 23:23:34 11.0
6 2019-07-29 23:33:34 11.0
7 2019-07-29 23:43:34 12.0
8 2019-07-29 23:53:34 12.0
9 2019-07-30 00:03:34 11.0
10 2019-07-30 00:13:34 12.0
11 2019-07-30 00:23:34 13.0
12 2019-07-30 00:33:34 13.0
13 2019-07-30 00:43:34 14.0
14 2019-07-30 00:53:34 14.0
...
当您手动计算时,您可以看到它所取的平均值实际上是从 21:00-24:00 而不是 22:00-1:00,尽管我在重新采样中进行了偏移。我该如何纠正?
解决方案
您需要使用参数base
而不是loffset
仅调整标签。
尝试:
thirdly = df.resample('3H', base = 1, on='TIME').mean()
推荐阅读
- java - 我应该使用哪个 OOP 范式?
- python - PySpark 聚合和复杂模式
- nginx - nginx proxy_pass 到烧瓶工作,而 /static 找不到 jquery
- vue.js - data 属性已经被声明为 prop
- mysql - 在 my.cnf 中添加 innobuffer 池大小后重新启动 MySQL 5.7 时出错
- flask - 烧瓶 Python URL 堆叠
- php - 在刀片模板中的 html 布局的 head 标签中设置 scripts/rel
- python - 将模块作为对象导入
- reactjs - 无法访问嵌套数据
- jquery - $(this).next('input').focus(); 不能在内部和形式上工作