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

Pandas按特定条件重采样:同一ID+Serial每15分钟仅统计一次

问题描述

现有一个DataFrame df,数据结构如下:

Start date              Final date                      Value   ID    Serial     
2022-09-01 01:09:07.093 2022-09-01 05:43:55.092999999   10.92   200   120
2022-09-01 01:14:07.093 2022-09-01 05:43:55.092999999   10.92   200   120
2022-09-01 01:19:07.093 2022-09-01 05:43:55.092999999   10.92   200   120
2022-09-01 01:13:07.093 2022-09-01 03:41:55.092999999   11.85   201   122
...
2022-09-02 01:19:07.093 2022-09-03 07:43:55.092999999   7.35    300   124
2022-09-02 01:24:07.093 2022-09-03 07:43:55.092999999   7.35    300   124
...

每组ID与Serial的组合,会从Start date到Final date每5分钟生成一条记录。需求是按15分钟间隔对该DataFrame重采样,并对Value字段求和,但每个15分钟间隔内同一ID+Serial组合仅统计一次。

最初实现代码:

df = df.resample('15min', on='Start date')['Value'].sum()

该代码会导致同一ID+Serial组合在同一个15分钟间隔内被多次统计,不符合需求:

  • 实际输出示例:
Date                 Value                  
2022-09-01 01:00:00  33.69
2022-09-01 01:15:00  10.92
...
2022-09-02 01:15:00  14.7
...
  • 预期输出示例:
Date                 Value                  
2022-09-01 01:00:00  22.70
2022-09-01 01:15:00  10.92
...
2022-09-02 01:15:00  7.35
...

注:每个时间间隔内存在大量不同的ID与Serial组合。

解决方案

核心思路是先对每个15分钟窗口内的ID+Serial组合去重,再进行求和,具体步骤如下:

  • 给每条记录标记其所属的15分钟窗口时间戳
df['15min_window'] = df['Start date'].dt.floor('15min')
  • 按15min_window、ID、Serial分组,保留每组的第一条记录(同组内Value值一致,取mean()/max()结果也相同)
df_unique = df.groupby(['15min_window', 'ID', 'Serial']).first().reset_index()
  • 按15分钟窗口对去重后的数据求和,调整索引和列名匹配预期输出
result = df_unique.groupby('15min_window')['Value'].sum().rename_axis('Date').reset_index()

也可以用链式写法简化代码:

result = (df
          .assign(window=df['Start date'].dt.floor('15min'))
          .groupby(['window', 'ID', 'Serial'])['Value'].first()
          .groupby('window').sum()
          .rename_axis('Date')
          .reset_index(name='Value'))

关键说明

  • dt.floor('15min')将Start date向下取整到最近的15分钟间隔,统一窗口的时间标记
  • 双重分组确保先去重(同一窗口内的ID+Serial只留一条),再求和,彻底避免重复统计问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:45:47