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

Python中非均匀时间索引DataFrame按时间窗口计算均值的实现方法

不均匀时间采样DataFrame的时间窗口均值计算方法

Pandas的rolling方法原生支持时间长度作为窗口,专门适配时间索引不均匀的场景,不需要手动实现循环逻辑,实现方式如下:

前置条件

  • 确认DataFrame的索引为DatetimeIndex类型,若不是先做转换
  • 确认数据已按时间索引升序排列

实现代码

import pandas as pd

# 转换索引为时间类型并排序
df.index = pd.to_datetime(df.index)
df = df.sort_index()

# 计算过去1秒窗口内的Value均值
df['mean'] = df['Value'].rolling(window='1s', closed='right').mean()

参数说明

  • window='1s':指定滚动窗口长度为1秒,pandas会自动根据时间索引计算每个点对应的窗口范围,不需要考虑采样点密度
  • closed='right':指定窗口包含右端点(当前行的时间点),窗口范围等价于(当前时间-1秒, 当前时间],和你写的切片逻辑完全一致,该值为默认配置可省略

原循环代码的问题

你写的循环代码运行失败大概率是触发了链式索引的SettingWithCopyWarning,同时循环遍历的方式在数据量较大时性能极差,原生rolling方法经过C层面优化,执行效率远高于自定义循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:54:03