You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用xarray计算跨整点的30分钟时间平均值

实现跨整点30分钟时间序列平均的简洁方案

可以通过时间偏移+分组聚合的方式快速实现需求,核心思路是将每个数据点映射到其所属的目标整点窗口,再按窗口分组求平均:

步骤1:生成窗口标签

给每个时间点加上15分钟后向下取整到小时,得到该数据点所属的整点窗口标签。例如:

  • 12:45 +15分钟 =13:00 → 窗口标签为13:00(对应窗口12:45-13:15)
  • 13:15 +15分钟 =13:30 → 窗口标签为13:00(包含在12:45-13:15窗口内)

步骤2:分组求平均

用生成的窗口标签对DataArray进行分组,再计算每组的平均值。

完整代码如下:

import numpy as np
import pandas as pd
import xarray as xr

# 生成示例数据
time = pd.date_range(start='2022-05-11 00:00:00', end='2022-05-11 23:15:00', freq='2min')
random_data = np.random.randint(100, size=len(time))
data_array = xr.DataArray(data=random_data, coords={'time': time})

# 生成窗口标签:每个时间点加15分钟后取整点
window_labels = (data_array.time + pd.Timedelta(minutes=15)).dt.floor('H')

# 按窗口标签分组求平均
hourly_avg = data_array.groupby(window_labels).mean()

# 查看结果
print(hourly_avg)

方案优势

  • 无需手动筛选间隔bin,直接通过时间偏移自动匹配正确窗口,逻辑清晰不易出错
  • 代码简洁易复用,仅需两行核心代码即可实现需求
  • 结果的时间坐标直接对应目标整点,符合业务语义

内容的提问来源于stack exchange,提问作者mariandob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:47:46