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

如何为时间序列DataFrame按天计算Rolling Average并新增列

实现每日滚动累积平均(val_mean)的方法

要实现按日期分组的滚动累积平均(即每天内从当日第一个数据点到当前点的均值),可以用Pandas的分组(groupby)结合扩展窗口(expanding)计算均值的方法,具体步骤如下:

  1. 确保时间列是datetime类型
    如果你的timestamp列还不是datetime格式,先转换:
import pandas as pd

df['timestamp'] = pd.to_datetime(df['timestamp'])
  1. 计算每日滚动累积平均
    通过按日期分组,对每组的val列计算扩展窗口均值,直接生成val_mean列:
df['val_mean'] = df.groupby(df['timestamp'].dt.date)['val'].expanding().mean().reset_index(level=0, drop=True)

或者用transform写法,效果完全一致:

df['val_mean'] = df.groupby(df['timestamp'].dt.date)['val'].transform(lambda x: x.expanding().mean())

代码说明

  • df['timestamp'].dt.date:提取timestamp中的日期部分,用来按天分组
  • expanding().mean():对每个分组内的val列,计算从第一个元素到当前元素的累积均值(也就是你需要的当日滚动平均)
  • reset_index(level=0, drop=True):移除分组产生的日期索引,让结果和原DataFrame的索引匹配

这样处理后,就能得到你示例中的效果:每天的第一个数据点均值等于自身,后续每个点都是当日从开头到当前的平均,第二天重新开始计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:01:01