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

请求协助:基于分钟级数据集计算15分钟均值并生成指定输出结构

我来帮你搞定这个15分钟均值的计算需求,用Python的Pandas库就能高效完成这个任务——50多万行的数据处理Pandas完全hold住。下面是具体的实现步骤和代码:

完整解决方案

1. 准备工作:导入库并读取数据

首先确保你已经安装了Pandas,然后导入库并读取你的数据集(假设是CSV格式,如果是Excel等其他格式,换用pd.read_excel即可):

import pandas as pd

# 读取数据集,假设列名和你描述的一致:Month, Day, Hour, Minute, Value1, Value2, Value3
df = pd.read_csv('your_dataset.csv')

2. 构建完整时间戳

我们需要把分散的Month、Day、Hour、Minute字段合并成一个可用于分组的时间戳列。因为你没指定年份,这里默认用某一年(比如2023),这不会影响15分钟分组的逻辑:

# 添加年份列(仅用于构造datetime,不影响最终分组结果)
df['Year'] = 2023
# 合并字段生成datetime列
df['datetime'] = pd.to_datetime(df[['Year', 'Month', 'Day', 'Hour', 'Minute']])

3. 按15分钟分组计算均值

用Pandas的resample方法按15分钟间隔分组,同时保留月份信息,计算三个Value字段的均值:

# 按15分钟区间分组,聚合需要的字段
grouped = df.resample('15T', on='datetime').agg(
    Month=('Month', 'first'),  # 同一15分钟区间内月份必然一致,取第一个值即可
    MeanValues1=('Value1', 'mean'),
    MeanValues2=('Value2', 'mean'),
    MeanValues3=('Value3', 'mean')
).reset_index()

4. 整理输出格式

现在需要生成Begin和End列(时分格式),并调整列的顺序,匹配你要求的输出结构:

# 生成Begin(区间起始时分)和End(区间结束时分)
grouped['Begin'] = grouped['datetime'].dt.strftime('%H:%M')
grouped['End'] = (grouped['datetime'] + pd.Timedelta(minutes=15)).dt.strftime('%H:%M')

# 调整列顺序,保留需要的字段
result = grouped[['Month', 'Begin', 'End', 'MeanValues1', 'MeanValues2', 'MeanValues3']]

# 将结果保存为CSV(按需选择是否保存)
result.to_csv('15min_mean_result.csv', index=False)

验证结果行数

运行完成后,你可以用len(result)检查行数,应该正好是35040行(365天×24小时×4个15分钟区间=35040),和你要求的一致。

额外优化提示

  • 如果你的数据集是跨年的,只需去掉手动添加的Year列,确保原始数据包含Year字段,构造datetime时加入该字段即可。
  • 如果需要像示例那样保留两位小数,可以在聚合时添加round(2),比如:MeanValues1=('Value1', lambda x: x.mean().round(2))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:09:56