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

Python代码求助:从15分钟间隔数据提取小时级子集

解决15分钟间隔数据提取小时整点数据的问题

原代码问题分析

原代码通过计算与起始时间的分钟差模60来筛选整点数据,容易因为时间戳精度问题(如存在毫秒/微秒)或起始时间本身不是整点,导致TimeDiff % 60 == 0的判断失效,最终筛选出的数据不全。

可靠解决方案

以下两种方法可以精准提取小时整点数据,无需均值等聚合计算:

方法一:直接筛选分钟数为0的行

因为数据是15分钟间隔,整点对应的分钟数必然为0,直接检查时间的分钟部分即可:

final_TYP_hourly = final_TYP.copy()  # 避免修改原数据集
final_TYP_hourly['DateTime'] = pd.to_datetime(final_TYP_hourly.index)

# 筛选分钟数为0的整点数据
filtered_data = final_TYP_hourly[final_TYP_hourly['DateTime'].dt.minute == 0]

filtered_data.reset_index(drop=True, inplace=True)
print(filtered_data)
print(f"筛选后数据条数:{len(filtered_data)}")  # 预期为8760条

方法二:用resample提取整点数据(不聚合)

如果数据集的索引已经是DatetimeIndex,可以直接用resample按小时采样,取每个小时的第一条数据(即整点记录):

# 确保索引为DatetimeIndex
final_TYP.index = pd.to_datetime(final_TYP.index)

# 按小时划分区间,取每个区间的第一条数据
filtered_data = final_TYP.resample('H').first()

filtered_data.reset_index(drop=True, inplace=True)
print(filtered_data)
print(f"筛选后数据条数:{len(filtered_data)}")

方案优势

  • 方法一直接检查时间的分钟属性,不受起始时间和时间戳精度影响,只要数据包含整点记录就能准确筛选。
  • 方法二利用pandas原生的时间采样功能,代码更简洁,适合规则时间间隔的数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:37:06