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

Xarray去除重复时间索引并保留对应最大值的实现方案咨询

解决方案

你要实现的按重复时间点取最大值的需求,无需循环,用Xarray自带的groupby操作一行即可完成,性能远高于循环实现:

  1. 首先完成两个DataArray的拼接,这步你的写法是正确的:
test = xr.concat([data1, data2], dim='time')
  1. 直接按时间索引分组,对同时间点的所有值取最大值:
result = test.groupby("time").max(dim="time")

原代码报错原因

你写的循环逻辑中,当选中的时间点仅对应一条数据时(也就是每日12时的条目),test.sel(time=i)返回的结果已经没有time维度,再调用.max(dim='time')会触发维度不存在的报错。即使增加维度判断逻辑修复问题,循环实现的性能也远低于原生groupby方案,不推荐使用。

结果验证

最终得到的result时间维度长度为62,和data1的时间维度一致:每日00时的数值为data1和data2对应值的最大值,每日12时的数值保留data1的原始值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:18:04