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

如何将小时级数据拆分为5分钟间隔并保留每小时原始记录?

如何将小时级时间序列数据填充为5分钟粒度并保留原始值?

问题场景

现有小时级时间序列数据:

Time                    Humidity Condition
2014-09-01 00:00:00     84       Cloudy
2014-09-01 01:00:00     94       Rainy

需要转换为每5分钟一条记录,且每小时内的所有记录复用对应小时的原始Humidity和Condition值,避免resample+mean()等聚合函数修改原始数据。

解决方案

使用Pandas的**前向填充(ffill)**结合重采样或重新索引即可实现需求,以下是两种可靠方法:


方法1:resample + ffill

直接对原数据按5分钟粒度重采样,再用前向填充补全缺失值,自动复用最近的原始数据:

import pandas as pd

# 构造示例数据
data = {
    'Time': ['2014-09-01 00:00:00', '2014-09-01 01:00:00'],
    'Humidity': [84, 94],
    'Condition': ['Cloudy', 'Rainy']
}
df = pd.DataFrame(data)

# 转换时间列为索引并确保格式为datetime
df['Time'] = pd.to_datetime(df['Time'])
df = df.set_index('Time')

# 按5分钟重采样并前向填充
df_resampled = df.resample('5T').ffill()

方法2:手动生成时间索引 + reindex + ffill

若需更精准控制时间范围,可手动生成完整的5分钟时间序列后重新索引:

# 生成从数据起始到结束的5分钟间隔时间索引
full_time_index = pd.date_range(start=df.index.min(), end=df.index.max(), freq='5T')

# 重新索引并前向填充
df_resampled = df.reindex(full_time_index).ffill()

效果验证

执行后df_resampled的输出符合需求:

Humidity Condition
2014-09-01 00:00:00        84    Cloudy
2014-09-01 00:05:00        84    Cloudy
2014-09-01 00:10:00        84    Cloudy
...
2014-09-01 00:55:00        84    Cloudy
2014-09-01 01:00:00        94     Rainy
2014-09-01 01:05:00        94     Rainy
...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:30:49