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

如何将DataFrame的10分钟时间间隔改为30分钟并求和聚合

嘿,这个需求用Pandas处理超简单的!核心思路就是时间重采样(resample),把10分钟间隔的数据聚合到30分钟区间里,同时对数值求和。我给你一步步拆解:

步骤1:确保datetime列是时间类型

首先得把你的datetime列转换成Pandas的datetime格式——要是它现在是字符串类型,时间相关的操作根本没法正常运行:

import pandas as pd

# 假设你的DataFrame名字是df
df['datetime'] = pd.to_datetime(df['datetime'])
步骤2:用resample完成30分钟聚合求和

Pandas的resample()方法就是专门为时间序列重采样设计的。这里指定'30T'代表30分钟(T是分钟的缩写,也可以写成'30min'),然后调用sum()就能自动把每个30分钟区间内的value加总:

# 方法1:先把datetime设为索引,再重采样
df_resampled = df.set_index('datetime').resample('30T').sum().reset_index()

# 方法2:不用改索引,直接用on参数指定datetime列
df_resampled = df.resample('30T', on='datetime').sum().reset_index()
示例验证

拿你给出的示例数据(我修正了时间间隔的笔误,改成合理的10分钟增量):

原DataFrame:
datetime value
1/1/2018 00:00:00 1
1/1/2018 00:10:00 10
1/1/2018 00:20:00 3
1/1/2018 00:30:00 6
1/1/2018 00:40:00 2
1/1/2018 00:50:00 5

运行代码后得到的结果会是:

datetimevalue
1/1/2018 00:00:0014
1/1/2018 00:30:0013

其中00:00:00对应的是00:00-00:30区间的总和(1+10+3),00:30:00对应的是00:30-01:00区间的总和(6+2+5)。

补充小技巧
  • 要是你想让时间区间从非整点开始(比如从00:10对齐),可以加loffset='10min'参数调整
  • 如果原数据有缺失的10分钟时间点,resample会自动补上空区间,value默认是0;不想保留空区间的话,加个dropna=True就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:37:54