如何对指定传感器组的测量数据按每分钟维度计算平均值与标准差
传感器数据分钟粒度聚合计算方案
核心解决思路
通过时间对齐、条件筛选、分组聚合三个步骤即可覆盖全部需求,以下为基于Pandas的可落地实现:
- 时间对齐:把所有非同步的时间戳统一截断到整分钟维度,解决测量时间不同步的问题
- 条件筛选:先按传感器ID、目标变量过滤数据,排除无关数据的干扰
- 分组聚合:按对齐后的分钟时间分组,直接计算目标变量的均值和标准差
可直接复用的代码实现
import pandas as pd # 可自定义配置参数 target_var = "T" # 替换为你需要计算的目标变量名 target_entities = ["ANG5-00902", "ANG5-00903"] # 替换为你需要聚合的传感器ID列表 # 1. 时间列预处理,对齐到整分钟粒度 # 请将下方df替换为你自己的原始数据集变量名,时间列默认名为Time df["Time"] = pd.to_datetime(df["Time"]) df["minute_time"] = df["Time"].dt.floor("min") # 2. 筛选符合条件的目标数据 filtered_df = df[ df["Entity Name"].isin(target_entities) ][[target_var, "minute_time"]] # 3. 按分钟分组计算均值和标准差 result_df = filtered_df.groupby("minute_time", as_index=False).agg( Average=(target_var, "mean"), Std=(target_var, "std") ).rename(columns={"minute_time": "Time"}) # 若只需要保留HH:MM格式的时间,可打开下方注释 # result_df["Time"] = result_df["Time"].dt.strftime("%H:%M")
补充说明
如果需要补全没有测量数据的空白分钟时段,可以用pd.date_range生成对应时间段的完整分钟时间序列,再和计算得到的result_df做左连接即可。
内容的提问来源于stack exchange,提问作者Sorensen
相关产品推荐
相关产品推荐

