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

生成时间范围的小时间隔,补全指定时段内的缺失小时

补全日期内缺失小时并限定时间范围的解决方案

核心处理逻辑

  • 将时间字段转换为标准datetime格式,保证按日期、小时维度处理的准确性
  • 针对每个独立日期,生成08:00 至 17:00的完整小时时间序列
  • 通过左连接将原始数据与完整序列合并,自动补全缺失小时行,按需填充缺失值

示例实现(Python Pandas)

import pandas as pd

# 1. 读取并预处理数据(假设原始数据包含datetime和数值列)
df = pd.read_csv("your_data.csv")
df["datetime"] = pd.to_datetime(df["datetime"])  # 转换为标准时间格式

# 2. 生成每个日期的目标时间范围完整序列
unique_dates = df["datetime"].dt.date.unique()
full_time_list = []

for single_date in unique_dates:
    # 构造当日08:00到17:00的小时级时间点
    start_time = pd.Timestamp(f"{single_date} 08:00:00")
    end_time = pd.Timestamp(f"{single_date} 17:00:00")
    hourly_seq = pd.date_range(start=start_time, end=end_time, freq="H")
    full_time_list.extend(hourly_seq)

# 转为DataFrame用于合并
full_time_df = pd.DataFrame({"datetime": full_time_list})

# 3. 合并补全缺失小时
result_df = pd.merge(full_time_df, df, on="datetime", how="left")

# 可选:填充缺失值(示例用0填充,也可根据需求用前向/后向填充)
result_df["value"] = result_df["value"].fillna(0)

print(result_df)

额外优化提示

  • 若原始数据时间精度高于小时(含分钟/秒),先向下采样到小时:df["datetime"] = df["datetime"].dt.floor("H")
  • 若需先过滤原始数据中超出08:00-17:00的记录:df = df[(df["datetime"].dt.hour >= 8) & (df["datetime"].dt.hour <= 17)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:44:49