如何按小时或半小时聚合时间序列数据并计算均值用于绘图
时间维度聚合操作实现方案
我默认你用Python做数据处理,用Pandas库的resample方法可以快速实现需求,具体操作如下:
前置依赖
确保你已经安装了pandas库,没装的话执行pip install pandas安装即可。
具体操作代码
import pandas as pd # 1. 读取你的数据集,根据你的实际存储格式调整读取方法,这里以csv为例 df = pd.read_csv("你的数据集文件路径.csv") # 2. 将Date列转换为pandas可识别的时间格式 df["Date"] = pd.to_datetime(df["Date"]) # 3. 将Date列设置为数据集的索引,resample方法依赖时间索引做聚合 df = df.set_index("Date") # 4. 按指定时间窗口聚合求均值 # 每30分钟聚合 df_30min = df.resample("30T").mean().reset_index() # 每60分钟聚合 df_60min = df.resample("H").mean().reset_index()
补充说明
- resample方法的时间窗口参数可自由调整,除了30T(30分钟)、H(1小时)外,还支持15T(15分钟)、D(1天)等常用时间粒度
- 如果你不需要空的时间窗口(对应时段没有原始数据的情况),可以在mean()后加
.dropna()删除空行 - 默认窗口是左闭右开规则,用窗口起始时间作为聚合后行的时间标签,符合常规统计需求,如果需要调整规则可以查pandas resample的closed、label参数设置
内容的提问来源于stack exchange,提问作者Loai Alnouri
相关产品推荐
相关产品推荐

