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

如何筛选DataFrame中时间为整点(HH:00:00)的数据行?

整点数据筛选解决方案

针对你的需求,既然time列已经是datetime64[ns]类型,无需通过字符串切片判断,直接利用pandas的datetime属性就能精准筛选整点数据,以下是几种可行方案:

方案1:直接判断分钟与秒是否为0

通过dt属性提取时间的分钟和秒,筛选两者均为0的行,不受数据缺失影响,适配所有时间粒度:

df_hourly = df[(df['time'].dt.minute == 0) & (df['time'].dt.second == 0)]

方案2:按小时聚合(按需选择)

如果需要每个整点仅保留一行数据(比如从5分钟/分钟粒度数据中提取整点首行或做聚合计算),可以用resample方法:

# 提取每个整点的第一行数据
df_hourly_first = df.resample('H', on='time').first()
# 若需要聚合计算,比如取小时均值
df_hourly_mean = df.resample('H', on='time').mean()

注:resample会自动将结果的索引设为整点,如需还原原DataFrame结构,可追加reset_index()。

关于之前方法的问题说明

  • 索引步长法失效:数据缺失导致索引与时间不再严格对应,无法依赖固定间隔的索引筛选。
  • 字符串切片报错:df.time_column[-5:]是对Series直接做字符串切片操作,但Series的RangeIndex不支持该索引方式,即使改用dt.strftime转换为字符串判断,效率也远低于直接操作datetime属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:45:38