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

如何用Pandas按小时分组带时间戳的DataFrame并保留起始小时戳?

解决方案:按小时分组并保留起始小时时间戳

我来帮你搞定这个需求——用pandas的时间序列分组工具就能完美实现,下面给你两种常用的方法,都能让你得到带起始小时时间戳的分组均值结果:

方法1:用resample(最简洁的方式)

resample是pandas专门为时间序列数据设计的分组工具,按小时分组时默认会把分组的起始时刻作为结果的索引标签,完全匹配你的要求:

import pandas as pd

# 先确保DataFrame的索引是datetime类型(如果不是先转换)
df.index = pd.to_datetime(df.index)

# 按小时分组,计算所有数值列的均值,结果索引就是各小时的起始时刻
hourly_result = df.resample('H').mean()

举个直观的例子:如果原数据包含10:05、10:20两个时间点的数据,resample('H')会把它们归到10:00:00这个分组下,结果的索引就是10:00:00,同时自动计算这两个数据点的均值。

方法2:用groupby结合floor('H')

如果你更习惯用groupby语法,可以把每个时间戳向下取整到小时(也就是得到所在小时的起始时刻),然后以此为分组键:

# 将索引向下取整到小时,作为分组依据
hourly_result = df.groupby(df.index.floor('H')).mean()

floor('H')会把任意时间戳转换成对应小时的起始点,比如10:15:30会变成10:00:00,分组后计算均值的结果索引就是这些标准化后的起始时刻。

小提示

  • 不需要用到你之前生成的日期列,直接基于datetime索引操作更高效
  • 如果你的DataFrame里混有非数值类型的列,mean()会自动忽略这些列,只计算数值型列的均值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:56:32