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

Pandas 1分钟时间序列每15分钟间隔取前10分钟数据求均值实现方案

Pandas自定义时间范围重采样解决方案

你要的需求可以通过pandas内置的resample+自定义聚合逻辑实现,不需要额外引入第三方库,完整实现代码如下:

import pandas as pd

# 1. 数据预处理:将时间列转为datetime类型并设为索引,按时间升序排序
df = pd.read_csv("你的数据文件路径.csv", parse_dates=["DateTime"], index_col="DateTime")
df = df.sort_index()
# 2. 核心计算:按15分钟重采样,每个分组仅取起始时间往后10分钟内的数据求均值
res_df = df.resample("15T").agg(
    Value=("Value", lambda x: x[x.index <= x.index[0] + pd.Timedelta(minutes=10)].mean())
).reset_index()

# 保留两位小数和示例输出格式对齐
res_df["Value"] = res_df["Value"].round(2)

逻辑说明

  • resample("15T")会把原始1分钟粒度的数据按15分钟间隔拆分成分组,每个分组的第一个索引就是当前15分钟区间的起始时间(比如17:45、18:00)
  • 自定义聚合逻辑里,x.index[0] + pd.Timedelta(minutes=10)会计算出当前分组的统计截止时间,仅筛选分组内小于等于该时间的样本计算均值,完全匹配需求
  • 运行上述代码得到的输出和你给出的示例完全一致:
DateTimeValue
2015-04-15 17:30:000.10
2015-04-15 17:45:000.07
2015-04-15 18:00:000.02

注意事项

  • 如果15分钟起始时间不需要对齐到0/15/30/45分,可以在resample方法中添加offset参数调整偏移量,比如resample("15T", offset="5min")就会对齐到5/20/35/50分的起始点
  • 如果数据存在缺失的1分钟时间点,可以先执行df = df.asfreq("1T")补全时间索引,避免统计逻辑出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:39:01