Excel中按15分钟时间间隔提取每日数据最大值的方法
高效按15分钟间隔提取时间序列最大值方案
原始数据
| Column A | Column B |
|---|---|
| 00:25:00 | 22 |
| 00:37:00 | 55 |
| 00:48:00 | 15 |
| 01:10:00 | 23 |
| 01:25:00 | 84 |
| 01:37:00 | 66 |
| 01:57:00 | 33 |
| 02:37:00 | 82 |
| 02:45:00 | 15 |
| 02:55:00 | 22 |
| 03:05:00 | 84 |
| 03:17:00 | 13 |
| 03:25:00 | 55 |
| 03:37:00 | 22 |
| 03:45:00 | 10 |
| 03:57:00 | 05 |
解决方案(Python Pandas)
针对一年规模的不规则时间间隔数据,Pandas的resample方法是处理这类时间序列聚合的高效方案,比数据透视表更适配大规模数据场景:
- 数据预处理:将时间列转换为datetime类型(若数据包含日期,需保留完整的日期时间格式,比如
2023-01-01 00:25:00) - 设置时间索引:把时间列设为DataFrame的索引,便于时间序列操作
- 15分钟间隔聚合:用
resample('15T')按15分钟分组,提取每组的最大值 - 补全天时间区间:确保结果覆盖全天所有15分钟时段,即使该时段无数据
代码示例
import pandas as pd # 读取数据(根据实际数据源调整,比如CSV/Excel) df = pd.read_csv('your_data.csv') # 转换时间列为datetime类型 df['Column A'] = pd.to_datetime(df['Column A'], format='%H:%M:%S') # 设置时间列为索引 df = df.set_index('Column A') # 生成全天完整的15分钟时间范围 full_time_range = pd.date_range(start='00:00:00', end='23:45:00', freq='15T') # 按15分钟间隔聚合最大值,并对齐到完整时间范围 result = df['Column B'].resample('15T').max().reindex(full_time_range) # 查看结果(无数据时段会显示NaN,可按需用fillna填充) print(result)
关键说明
resample('15T'):15T代表15分钟间隔,Pandas会自动将每个时间点分配到对应区间(例如00:25:00归入00:15:00-00:29:59区间)max():提取每个区间内Column B的最大值reindex(full_time_range):强制结果包含全天所有15分钟区间,避免遗漏无数据时段
若数据按天存储,只需保证Column A包含完整日期时间信息,resample会自动按日期+15分钟的维度完成分组聚合。
内容的提问来源于stack exchange,提问作者Pliz89
相关产品推荐
相关产品推荐

