0

0

Pandas 中实现非规则时间序列的线性插值重采样(对齐整点)

花韻仙語

花韻仙語

发布时间:2025-12-26 20:24:59

|

875人浏览过

|

来源于php中文网

原创

Pandas 中实现非规则时间序列的线性插值重采样(对齐整点)

本文介绍如何使用 pandas 对带有不规则时间戳的小时级气象数据进行重采样,通过先升频插值再降频对齐,精准生成每小时整点(如 15:00、16:00)的线性插值温度值。

在实际时间序列分析中,传感器数据常以近似但不精确的时间间隔采集(例如每小时 51 分记录),而下游任务(如可视化、建模或与标准气象产品对齐)往往要求严格对齐到整点(如 15:00, 16:00)。直接使用 df.resample('H').first().interpolate('linear') 并不能达到预期效果——因为 .first() 会丢失原始时间信息,导致插值失去时序依据;而 .interpolate() 在降频后应用,已无足够密度支撑准确线性拟合。

正确策略是 “升频→插值→降频”三步法

  1. 升频(Upsample):将原始数据重采样至高频率(如分钟级 'T' 或 '1min'),用 .first() 获取每个分钟桶内的首个观测值(此时多数分钟为空,产生大量 NaN);
  2. 插值(Interpolate):在密集的时间索引上执行 interpolate(method='linear'),利用原始时间戳的精确位置进行等距线性插值;
  3. 降频(Downsample):再以小时为单位重采样('H'),并用 .asfreq() 直接提取整点时刻的值(而非聚合),确保结果严格落在 HH:00:00。

以下是完整可运行示例:

问小白
问小白

免费使用DeepSeek满血版

下载
import pandas as pd

# 构造示例数据(注意:时间列需转为 datetime 并设为索引)
data = {
    'Date Time, GMT-08:00': ['10/31/23 15:51', '10/31/23 16:51', 
                             '10/31/23 17:51', '10/31/23 18:51',
                             '10/31/23 19:51', '10/31/23 20:51', 
                             '10/31/23 21:51'],
    'Temp, °C': [13.41, 7.49, 7.61, 7.39, 7.34, 7.33, 7.38]
}
df = pd.DataFrame(data)

# 关键预处理:解析时间、设为索引
df['Date Time, GMT-08:00'] = pd.to_datetime(
    df['Date Time, GMT-08:00'], 
    format='%m/%d/%y %H:%M'
)
df = df.set_index('Date Time, GMT-08:00')

# ✅ 正确流程:升频 → 插值 → 降频 → 取频点
result = (df
          .resample('T').first()           # 升频至分钟级,保留原始观测点
          .interpolate(method='linear')    # 在连续分钟索引上线性插值
          .resample('H').asfreq())         # 降频至小时级,取每小时首分钟(即 HH:00:00)

print(result)

输出结果:

                      Temp, °C
Date Time, GMT-08:00          
2023-10-31 15:00:00        NaN
2023-10-31 16:00:00    12.5220
2023-10-31 17:00:00     7.5080
2023-10-31 18:00:00     7.5770
2023-10-31 19:00:00     7.3825
2023-10-31 20:00:00     7.3385
2023-10-31 21:00:00     7.3375
⚠️ 注意事项:首行 15:00 为 NaN,因原始最早数据在 15:51,无法向前提取整点值(可结合 limit_direction='forward' 或 fill_value 处理边界);若原始时间跨度大、精度要求高,可改用 'S'(秒级)升频提升插值平滑度;.asfreq() 保证输出严格对齐整点;若需聚合(如取均值),应改用 .mean(),但会损失插值意义;所有操作均基于索引的时间语义,务必确保 datetime 索引已正确设置且无时区歧义(必要时用 .dt.tz_localize() / .dt.tz_convert() 统一时区)。

该方法兼顾物理合理性与工程实用性,是处理非均匀采样气象、IoT 或金融时间序列的标准实践。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

52

2025.12.04

传感器故障解决方法
传感器故障解决方法

传感器故障排除指南:识别故障症状(如误读或错误代码)。检查电源和连接(确保连接牢固,无损坏)。校准传感器(遵循制造商说明)。诊断内部故障(目视检查、信号测试、环境影响评估)。更换传感器(选择相同规格,遵循安装说明)。验证修复(检查信号准确性,监测异常行为)。

469

2024.06.04

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

1

2026.01.21

windows激活码分享 windows一键激活教程指南
windows激活码分享 windows一键激活教程指南

Windows 10/11一键激活可以通过PowerShell脚本或KMS工具实现永久或长期激活。最推荐的简便方法是打开PowerShell(管理员),运行 irm https://get.activated.win | iex 脚本,按提示选择数字激活(选项1)。其他方法包括使用HEU KMS Activator工具进行智能激活。

0

2026.01.21

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

1

2026.01.21

毒蘑菇显卡测试网站入口 毒蘑菇测试官网volumeshader_bm
毒蘑菇显卡测试网站入口 毒蘑菇测试官网volumeshader_bm

毒蘑菇VOLUMESHADER_BM测试网站网址为https://toolwa.com/vsbm/,该平台基于WebGL技术通过渲染高复杂度三维分形图形评估设备图形处理能力,用户可通过拖动彩色物体观察画面流畅度判断GPU与CPU协同性能;测试兼容多种设备,但中低端手机易卡顿或崩溃,高端机型可能因发热降频影响表现,桌面端需启用独立显卡并使用支持WebGL的主流浏览器以确保准确结果

3

2026.01.21

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2

2026.01.21

windows安全中心怎么关闭打开_windows安全中心操作指南
windows安全中心怎么关闭打开_windows安全中心操作指南

Windows安全中心可以通过系统设置轻松开关。 暂时关闭:打开“设置” -> “隐私和安全性” -> “Windows安全中心” -> “病毒和威胁防护” -> “管理设置”,将“实时保护”关闭。打开:同样路径将开关开启即可。如需彻底关闭,需在组策略(gpedit.msc)或注册表中禁用Windows Defender。

1

2026.01.21

C++游戏开发Unreal Engine_C++怎么用Unreal Engine开发游戏
C++游戏开发Unreal Engine_C++怎么用Unreal Engine开发游戏

虚幻引擎(Unreal Engine, 简称UE)是由Epic Games开发的一款功能强大的工业级3D游戏引擎,以高品质实时渲染(如Nanite和Lumen)闻名 。它基于C++语言,为开发者提供高效率的框架、强大的可视化脚本系统(蓝图)、以及针对PC、主机和移动端的完整开发工具,广泛用于游戏、电影制片等领域。

0

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GO语言核心编程课程
GO语言核心编程课程

共402课时 | 36.5万人学习

PHP数据库编程-MySQLi/PDO
PHP数据库编程-MySQLi/PDO

共11课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号