对时间序列数据进行重采样,向前求平均值 pandas
我的 df 数据如下所示。
ts Values
2021-01-01 09:00:00+00:00 0.00
2021-01-01 09:10:00+00:00 0.01
2021-01-01 09:20:00+00:00 0.03
2021-01-01 09:30:00+00:00 0.07
2021-01-01 09:40:00+00:00 0.09
2021-01-01 09:50:00+00:00 0.14
2021-01-01 10:00:00+00:00 0.12
2021-01-01 10:10:00+00:00 0.14
2021-01-01 10:20:00+00:00 0.18
2021-01-01 10:30:00+00:00 0.16
2021-01-01 10:40:00+00:00 0.14
2021-01-01 10:50:00+00:00 0.21
2021-01-01 11:00:00+00:00 0.16
我用于重采样的代码是:
df = round(df.resample('1H').mean(), 2).fillna(0)
这里 fillna 用于向前填充空单元格。所以没什么大不了的。 当我运行此代码时,我的输出如下所示:
ts Values
2021-01-01 09:00:00+00:00 0.06
2021-01-01 10:00:00+00:00 0.16
2021-01-01 11:00:00+00:00 0.16
2021-01-01 12:00:00+00:00 0.07
我真正想要的是获取 09:00 到 09:50 之间的值和日期,并写入与 10:00 相对应的值。但默认如09:00到09:50计算为09:00。我想要 10:00 的这个。
预期输出是:
ts Values
2021-01-01 10:00:00+00:00 0.06
2021-01-01 11:00:00+00:00 0.16
2021-01-01 12:00:00+00:00 0.16
My df data is like below.
ts Values
2021-01-01 09:00:00+00:00 0.00
2021-01-01 09:10:00+00:00 0.01
2021-01-01 09:20:00+00:00 0.03
2021-01-01 09:30:00+00:00 0.07
2021-01-01 09:40:00+00:00 0.09
2021-01-01 09:50:00+00:00 0.14
2021-01-01 10:00:00+00:00 0.12
2021-01-01 10:10:00+00:00 0.14
2021-01-01 10:20:00+00:00 0.18
2021-01-01 10:30:00+00:00 0.16
2021-01-01 10:40:00+00:00 0.14
2021-01-01 10:50:00+00:00 0.21
2021-01-01 11:00:00+00:00 0.16
My code is for resampling is:
df = round(df.resample('1H').mean(), 2).fillna(0)
Here fillna is for filling empty cells forward. So not a big deal.
When I run this code, my output is like below:
ts Values
2021-01-01 09:00:00+00:00 0.06
2021-01-01 10:00:00+00:00 0.16
2021-01-01 11:00:00+00:00 0.16
2021-01-01 12:00:00+00:00 0.07
What I actually want is that take values and date from 09:00 to 09:50 and write the values corresponding to 10:00. But the default is like 09:00 to 09:50 is calculated as 09:00. I want this at 10:00.
The expected output is:
ts Values
2021-01-01 10:00:00+00:00 0.06
2021-01-01 11:00:00+00:00 0.16
2021-01-01 12:00:00+00:00 0.16
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用:
输出:
或者将 09:00 视为 10:00:
输出:
You can use:
output:
Or to consider 09:00 to be 10:00:
output: