日期/时间数据整理:15分钟间隔时间序列缺失行填补
实现方案(Python/Pandas 场景)
核心逻辑是先生成覆盖全时间范围的15分钟间隔完整时间序列,再和原有数据关联补全缺失行,即可保证多站点时间轴完全对齐,步骤如下:
- 第一步:先把
Date_and_time列转为pandas内置的datetime格式,避免字符串时间的计算误差
import pandas as pd # 读取数据集后先转换时间列 df['Date_and_time'] = pd.to_datetime(df['Date_and_time'])
- 第二步:生成覆盖时间范围的15分钟间隔完整时间序列
# 单站点处理取自身时间边界,多站点统一处理建议取所有站点的全局最小、最大时间作为边界 start_time = df['Date_and_time'].min() end_time = df['Date_and_time'].max() # 生成15分钟间隔的完整时间序列,freq参数15T对应15分钟 full_time = pd.date_range(start=start_time, end=end_time, freq='15T') # 转成DataFrame方便后续关联 full_df = pd.DataFrame({'Date_and_time': full_time})
- 第三步:用左关联把原有数据的Pressure值匹配到完整时间序列上,缺失的位置默认填充NaN,也可以按需设置填充规则
# 关联补全 result_df = full_df.merge(df, on='Date_and_time', how='left') # 可选:缺失值前向填充(用前一个非空的Pressure值填充) # result_df['Pressure'] = result_df['Pressure'].ffill() # 可选:缺失值补0 # result_df['Pressure'] = result_df['Pressure'].fillna(0)
- 第四步:多站点合并
所有站点都按上述逻辑用统一的full_time序列处理完成后,直接按行堆叠所有站点的补全后数据集即可,所有站点的Date_and_time列完全一致,绘图时直接用该列作为X轴即可实现对齐。
无代码Excel场景
如果是小体量数据集不需要写代码,可按以下步骤操作:
- 先在单独一列手动拉出从全局最早到全局最晚时间的15分钟间隔序列(输入前两个间隔15分钟的时间,选中下拉即可自动生成连续15分钟间隔序列)
- 用
VLOOKUP函数把原有表的Pressure值匹配到新的时间序列列上,匹配不到的即为缺失行,会显示#N/A,按需填充即可。
内容的提问来源于stack exchange,提问作者JackWassik
相关产品推荐
相关产品推荐

