【Python时序预测系列】时序数据采样间隔不规律的解决方案(案例)

一、引言

        在做时序数据相关任务时候,会遇到采样的间隔不规律的情况,比如采样周期为月,但是有的月份应该种种原因未能成功采样,如下:

图片

        这时候运用统计模型进行时序分析的时候往往会出现问题,所以我们需要构造规律的时间间隔,然后对构造出的月份的数据进行插值。

二、实现过程

方法一:先构造、后填充

代码:

import pandas as pd
# 创建一个包含不规律时间间隔的DataFrame对象
df = pd.DataFrame({'time': ['2013-01-01', '2013-02-01', '2013-04-01', '2013-06-01', '2013-07-01'],'value': [2, 4, 5, 7, 9]
})# 将时间列转换为 pandas 的日期时间类型
df['time'] = pd.to_datetime(df['time'])
# 将日期列设置为索引
df.set_index('time', inplace=True)
# 构造规律的时间间隔
df = df.resample('MS').asfreq()
print(df)# 使用插值法填充缺失值
df['value'] = df['value'].interpolate()
interpolated_df = df# 输出结果
print(interpolated_df)

首先将不规律的时间点和对应的数值存储在一个 pandas 的 DataFrame 对象中。然后,我们将时间列转换为 pandas 的日期时间类型,以便后续处理。接下来,使用resample方法将时间序列转换为规律的时间间隔(月份),并使用asfreq方法将缺失的月份填充为 NaN 值。最后,我们使用interpolate方法对数值列进行插值操作,填补缺失的数值。

结果:

图片

方法二:先填充、后构造

代码:

import pandas as pd
from scipy.interpolate import interp1d# 创建一个包含不规律时间间隔的DataFrame对象
df = pd.DataFrame({'time': ['2013-01-01', '2013-02-01', '2013-04-01', '2013-06-01', '2013-07-01'],'value': [2, 4, 5, 7, 9]
})# 将时间列转换为 pandas 的日期时间类型
df['time'] = pd.to_datetime(df['time'])# 构造规律的时间间隔
start_time = df['time'].min()
end_time = df['time'].max()
regular_time = pd.date_range(start=start_time, end=end_time, freq='MS')# 使用 interp1d 函数对规律时间间隔进行插值操作
# interp1d(df['time'].values.astype(float), df['value'].values)返回一个函数
interpolated_values = interp1d(df['time'].values.astype(float), df['value'].values)(regular_time.values.astype(float))# 创建包含插值结果的DataFrame对象
interpolated_df = pd.DataFrame({'time': regular_time, 'value': interpolated_values})# 输出结果
print(interpolated_df)

先基于原数据构造出构造规律的时间间隔,然后基于原数据使用 interp1d 函数对构造出的规律时间间隔进行插值操作,最终创建出新的规律的时间间隔的数据。

结果:

图片

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2810212.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

原型模式(Prototype Pattern) C++

上一节:建造者模式(Builder Pattern)C 文章目录 0.理论1.原型模式的核心组成:2.实现方法3.什么时候使用 1.实践步骤 1: 定义怪物原型步骤 2: 实现具体怪物原型步骤 3: 使用原型创建怪物 0.理论 原型模式(Prototype P…

力扣随笔删除有序数组中的重复项(简单26)

思路:根据类似于滑动窗口的思想,定义一个指针;使指针左边的区域全部为不重复元素(包括指针所指的数字) 以示例2为例,left:红色加粗 遍历指针i:黑色加粗 窗口范围,左边界到…

C++笔记(面对对象部分复习向)

B站:黑马程序员C教程 栈区,全局区,堆区和代码区 析构、构造和static 对象成员与类本身构造顺序,先成员后自己;析构则相反 static修饰成员变量,所有对象共享一份内存,编译阶段分配内存,类内声明…

[c++] char * 和 std::string

1 char * 和 std::string 的区别 char * 字符串是常量字符串,不能修改;std::string 指向的字符串可以修改 实例代码如下图所示,s1 和 s2 均是常量字符串,字符串常量保存在只读数据区,是只读的,不能写&…

Aigtek高压放大器是什么东西做的

在许多电子应用中,需要将低电压信号放大到较高电压以满足特定的需求。为了实现这个目标,高压放大器被广泛采用。高压放大器是一种专用电子设备,使用特定的电路和器件来增益输入信号的电压。它通常由以下几个主要组成部分构成。 电源供应 高压…

C# Onnx yolov8-obb 旋转目标检测

目录 效果 模型信息 项目 代码 下载 C# Onnx Yolov8-OBB 旋转目标检测 效果 模型信息 Model Properties ------------------------- date:2024-02-26T08:38:44.171849 description:Ultralytics YOLOv8s-obb model trained on runs/DOTAv1.0-ms.ya…

TextCNN:文本分类卷积神经网络

模型原理 1、前言2、模型结构3、示例3.1、词向量层3.2、卷积层3.3、最大池化层3.4、Fully Connected层 4、总结 1、前言 TextCNN 来源于《Convolutional Neural Networks for Sentence Classification》发表于2014年,是一个经典的模型,Yoon Kim将卷积神…

B站UP视频播放数据分析之然冉创业说

【背景介绍】 几年前做过类似的分析,但是B站数据加密了,刚好最近在用selenium,就顺手用它爬一下数据。 df pd.read_excel("然冉创业说_13.2万_output.xlsx") df.head() 以上数据在视频播放页面就可以获取到。 【数据分析】 从数…

sqli-labs(less-46)order by 注入

我们打开sql-labs的第46关然后在输入框内输入?id1时会发现页面没有任何的变化,此时我们用Visual Studio Code查看第46关的代码 此时我们发现sql语句是$sql "SELECT * FROM users ORDER BY $id"; ,所以现在我们需要了解一下order by语句的作…

Helm vs Kustomize 深度比较

Helm和Kustomize都是流行的Kubernetes集群部署管理工具,本文比较了两者的优缺点,方便读者根据项目实际情况采用适合的方案。原文: Helm vs Kustomize: why, when, and how[1] 挑战 开始讨论之前,先来看看为什么要使用 Helm 或 Kustomize。 这…

AI数字人SadTalker实战

1.概述 AI数字人在营销和品牌推广中扮演着至关重要的角色,许多企业和个人正积极利用数字技术来打造属于自己的财富。有没有一种简单而免费的方式来创建自己的数字人呢?本篇博客笔者将为大家介绍如何搭建属于自己的AI数字人。 2.内容 2.1 什么是SadTalker…

Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透,将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav,并且结合cpolar的内网穿透工具实现在公网访…

【DL】深度学习之语音识别

目录 1 核心概念 2 安装依赖库 3 实践 语音信号处理(Speech Signal Processing)简称语音处理。 语音识别(ASR)和自然语言处理(NLP):语音识别就是将语音信号转化成文字文本,简单实…

解决启动服务报./nginx -s reload nginx: [emerg] unknown directive “错误

重启服务报错 bug: ./nginx -s reload nginx: [emerg] unknown directive "? 原因: 一、可能打开没有关闭 二、刚刚编辑的没成功,乱码了,格式问题,重新配置

汇标网系统搭建,让知识产权保护更智能、更便捷!

据国家商标局统计发布,2023年四季度我国商标申请量达到了6,988,704件,有效商标注册量为44,047,071件! 商标作为企业的重要资产,现在不仅企业、个体户、个人等等,都想在商标市场分得一杯羹。 目前,国家和社会…

多模态表征中的里程碑—CLIP及中文版Chinese-CLIP:理论揭秘、代码微调与论文阅读 (视觉与语义的奇妙共舞~)

我之前一直在使用CLIP/Chinese-CLIP,但并未进行过系统的疏导。这次正好可以详细解释一下。相比于CLIP模型,Chinese-CLIP更适合我们的应用和微调,因为原始的CLIP模型只支持英文,对于我们的中文应用来说不够友好。Chinese-CLIP很好地…

【深度学习笔记】深度学习训练技巧

深度学习训练技巧 1 优化器 随机梯度下降及动量 随机梯度下降算法对每批数据 ( X ( i ) , t ( i ) ) (X^{(i)},t^{(i)}) (X(i),t(i)) 进行优化 g ∇ θ J ( θ ; x ( i ) , t ( i ) ) θ θ − η g g\nabla_\theta J(\theta;x^{(i)},t^{(i)})\\ \theta \theta -\eta g g…

leetcode:491.递增子序列

1.误区:不能直接对数组排序再求解子集,因为那样就改变了原有数组的顺序 2.树形结构:一个一个取数,然后保证是递增序列,且不能重复。(数层上不可以重复取,树枝上可以重复取)收集的结…

[蜥蜴书Chapter2] -- 下载和加载数据

目录 一、下载和加载数据的函数代码 二、代码说明 1、urllib.request.urlretrieve 2、extractall 三、如何调用函数 四、查看数据的结构 1、head函数: 2、info函数: 3、describe函数: 4、绘制柱状图: 一、下载和加载数据…

迁移学习帮大忙!成都理工大学搭建 SCDUNet++ 模型进行滑坡测绘

滑坡是最常见的自然灾害之一,通常由地震和降雨引发,会造成严重的财产损失和人员伤亡。由地震触发的山体滑坡所造成的破坏,有时会比地震本身造成的破坏更为严重。大型地震发生之后,快速、准确地开展滑坡测绘工作 (landslide mappin…