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

如何检查时间序列数据中timestamp列的缺失小时数据?

确认小时数据缺失的问题

先通过计算验证差异:

  • 你的时间跨度是2550天15小时,理论上应包含的小时数为:2550*24 + 15 = 61215
  • 实际数据行数为60288,远小于理论值,可确定存在小时级时间戳缺失
检查缺失具体小时的方法

以下是几种基于Pandas的实用操作:

方法1:生成完整时间序列对比

通过生成覆盖全范围的标准小时序列,和原数据对比找出缺失项:

import pandas as pd

# 生成从最小到最大时间的完整小时级序列
full_hourly_range = pd.date_range(start=df1["Datetime"].min(), end=df1["Datetime"].max(), freq='H')

# 提取原数据的时间戳并转为集合
existing_timestamps = set(df1["Datetime"])

# 找出不在原数据中的时间戳,即缺失的小时
missing_timestamps = [ts for ts in full_hourly_range if ts not in existing_timestamps]

# 打印缺失的时间戳
print("缺失的小时时间戳:")
for ts in missing_timestamps:
    print(ts)

方法2:用重采样标记缺失

利用resample按小时聚合,筛选出无数据的小时:

# 将Datetime设为索引(若未设置)
df1 = df1.set_index("Datetime")

# 按小时重采样,统计每个小时的记录数
hourly_record_count = df1.resample('H').size()

# 筛选出记录数为0的小时,即为缺失的时间
missing_hours = hourly_record_count[hourly_record_count == 0].index

# 查看结果
print("缺失的小时:")
print(missing_hours)

方法3:通过时间差定位缺失点

计算相邻时间戳的间隔,找出间隔超过1小时的位置,定位缺失区间:

# 计算相邻时间戳的差值
time_intervals = df1["Datetime"].diff()

# 找出间隔大于1小时的行
gap_indices = time_intervals > pd.Timedelta(hours=1)
gap_data = df1[gap_indices]

# 输出缺失区间的前后时间
print("缺失时间段的前后时间:")
for idx, row in gap_data.iterrows():
    prev_time = row["Datetime"]
    next_time = df1.loc[idx+1, "Datetime"] if idx+1 < len(df1) else None
    print(f"从 {prev_time} 到 {next_time} 之间存在缺失")

内容的提问来源于stack exchange,提问作者Fatema Islam Tania

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:14:55