【问题标题】:How to use the resampling function to create 23 hour average data如何使用重采样功能创建23小时平均数据
【发布时间】:2022-12-18 12:01:06
【问题描述】:
我想从上午 10:00 到第二天上午 9:00 每 23 小时平均一次。
但我找不到解决办法
newDf = Data_s.resample(rule='H').mean()
我想我可以更改此代码,但我不知道如何更改。
我的数据是从23年3月11日到4月10日划分的。
像那样
2022-03-11 00:00
2022-03-11 00:01
....
2022-04-11 00:00
如果有办法让我知道,我将不胜感激
谢谢你
我这样试
newDf = Data_s.resample(rule='23H',origin=).mean()
但它只能连续 23 小时取平均值。
其他简单的方法是删除数据(早上 8 点),但我想知道如何通过代码实现
谢谢你。
【问题讨论】:
标签:
python
dataframe
mean
pandas-resample
【解决方案1】:
由于“从上午 10:00 到上午 9:00 每 23 小时”意味着不包括“第 9 小时”,因此这是一种可能的方法:
import pandas as pd
df = pd.DataFrame({
"time": pd.date_range(start="2022-03-11 00:00", end="2022-04-11 00:00", freq="min"),
"value": 1
})
hour_to_exclude = 9
time_subset = df[df["time"].dt.hour != hour_to_exclude]
time_subset.resample("D", on="time").mean()
输出:
value
time
2022-03-11 1.0
2022-03-12 1.0
2022-03-13 1.0
2022-03-14 1.0
2022-03-15 1.0
...