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

如何将pandas DataFrame中1小时间隔降雨数据转换为5分钟间隔

实现代码

完整实现逻辑如下,可直接运行:

import pandas as pd

# 1. 合并日期时间列为datetime格式,方便后续时间计算
rain['datetime'] = pd.to_datetime(rain['date'] + ' ' + rain['time'])
# 可选:先对时间做排序、去重处理,避免脏数据影响结果
rain = rain.sort_values('datetime').drop_duplicates('datetime', keep='last').reset_index(drop=True)

# 2. 计算单5分钟时段的降雨量:每小时总量平分为12份
rain['single_5min_rain'] = rain['rain_gauge_value'] / 12

# 3. 生成每小时对应的12个5分钟时间偏移量:从当前小时整点前55分钟到整点,步长5分钟
offset_list = [pd.DateOffset(minutes=-55 + i*5) for i in range(12)]
rain['time_offset'] = [offset_list] * len(rain)

# 4. 拆分多行,生成5分钟粒度数据
rain_5min = rain.explode('time_offset', ignore_index=True)
# 计算每个5分钟节点的实际时间
rain_5min['datetime'] = rain_5min['datetime'] + rain_5min['time_offset']

# 5. 拆分回date、time列,输出符合要求的结果
rain_5min['date'] = rain_5min['datetime'].dt.strftime('%Y-%m-%d')
rain_5min['time'] = rain_5min['datetime'].dt.strftime('%H:%M:%S')
result = rain_5min[['date', 'time', 'single_5min_rain']].rename(columns={'single_5min_rain': 'rain_gauge_value'})

效果验证

你给出的示例输入:原行为2020-10-09 00:00:00对应降雨量6.0,运行后会生成12行数据,每行降雨量为6/12=0.5,时间范围刚好为2020-10-08 23:05:00到2020-10-09 00:00:00,和你预期的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:39:00