时间序列操作|学习笔记

简介: 快速学习时间序列操作

开发者学堂课程【Python 常用数据科学库:时间序列操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/546/detail/7488


时间序列操作

内容介绍

一、从时间序列中取数据

二、时间序列的重采样

三、画时间序列


一、从时间序列中取数据

1、有这样的时间序列之后,要从这个数据中提取数据, 在 data 里要指定一些索引的,可以直接用 pandas 当索引。随便指定一天,就是从一个时间的切片到另外一个时间切片,这个数据就取到了,然后就是用 time step 取数据的切片

data[pd.Timestamp(‘2012-01-01 09:00’):pd. Timestamp(‘2012-01-01 19:00’)]

不加这个东西默认也会做这样转换,数据也会取出来。所以说当指定以时间为索引的时候,也可以直接把这个数据取出来。

2、.tail 相当于取最后的数据,比如取最后十个数据,可以取到从12年12月31到这个13年的数据。现在我想取所有13年数据, data 里直接指定一个2013就可以了:date[‘2013’],这就是说怎么样把这个数据从哪年到哪年取出来。比如想取这个2012年1月份到2012年3月份,直接用 data 加日期

data[‘2012-01:’2012-03’’]

执行所有数据也能取出来。对时间操作来说也是有这样索引和一个切片,可以直接把时间序列指定出来,还可以用布尔类型索引,所以在 data 当中,在 index 值当中指定一个月份,想把所有的月份都取出来,不管是哪年的,就把1月份取出来

data[data.index.month==1]

执行一下, 09年的1月份一直到12年13年1月份都打印出来了。比如想找具体的一个日子,可以在 index 值当中把具体的日子找出来,然后用这样一个布尔类型的索引去进行一个时间序列判断,这个也是可以的。

3、比如在数据当中,8点~12点单独拿出来,然后12点~3点我再单独拿出来,把数据分成一块一块的,然后用中文一起去分析。这也可以,就是在 data 里,  index  里不光有月份还有小时,把小时设置成在8点和12点之间,指定这样一个数。

data[(data.index.hour>8 & (data.index.hour<12)]

接下来得到一个结果,所有数据都是8点~12点之间,我们可以按照这样的模式去把数据进行切分,可以切分成一个一个的小块,这一个个小块便于我们进行主板块的分析。到这里不光可以这么写,还有一种写法 between_time,然后把两个时间点写进去,比如8点开始,然后到这个12点

data.between_time(’08:00’,’12:00’)

也是可以把这个数据拿出来。这个数据跟上面数据是一致的,只不过上一个是不包含12点的,下面的会包含12点的数据,这个就是对数据怎样进行一个操作。  


二、时间序列的重采样

1、比如说现在的一个数据, 09年的1月1号, 3点、6点、9点、12点,都有一些指标值,现在想统计的是变了,后面指标值现在就相当于它在某一时刻具体的值,但是想看的就是09年1月1号的平均值,09年1月2号的平均值,1月3号的平均值,想执行这样一个操作,相当于把这些观测值求一个平均,这个就叫做时间序列的重采样。这个就是一个 resample 操作,你可以指定按照什么样的方式去重采样,按照天的方式,然后去计算它的一个均值

data.resample(‘D’).mean().head()

原来这是1月1号有一堆时间点,1月2号有一个有一堆时间点,但是现在执行了这样的重采样,并且让重采样执行是按照一天为单位,算了这样一个均值,然后得到一个结果。接下来结果就是1月1号、1月2号、1月3号,它就是以天为单位,而不是说以某一天的某一个时间点为单位,相当于是这样一个意思。

2、然后 resample 这个模块下,去指定.mean 操作,其实在这个模式下,它默认的一个操作也是 .mean ,只不是在这里我们就加上一个 .mean,默认会帮我们去做它的均值。只要在这里再指定一个参数,指定以天为单位,并且指定 how 等于 mean 值,然后再 .head

data.resample(‘D’,how=’mean’).head()

得到的结果都是一样。

3、在这个过程当中,不光可以指定一个值,还可以指定一个 max 值,比如说1月1日,那么多时间节点最大的时间节点是什么,这样方便我们进行统计分析。然后这里按照一天去算了这样的事,按照多天也是可以的,指定3 day,现在以三天为单位

data.resample(‘3D’).mean().head()

又得到了一个新的结果。这就是在进行时间重采样的过程当中,可以指定很多种操作方式,这里指定了一个m,相当于是以这个月份为单位又进行了一个进行统计。

data.resample(‘M’).mean().head()

三、画时间序列

1、在这里对于这个时间序列,我们可以直接把它的图给画出来,.mean 操作之后,还有这样的操作 .plot,相当于直接去画这样的图。

data.resample(‘M’).mean().head().plot

再执行一下,它就会把这个图直接画出来,pandas 里可以直接调.plot,可以直接画图,这是最简单的一种画图的方式。之后还会说很多的画图方式, pandas 可能用的不是很多。重采样中我们可以对数据执行很多的操作,这里现在只是单模块去讲这个东西,然后到时候用的时候我们就需要把很多东西都结合在一起了。

相关文章
|
6月前
|
机器学习/深度学习 数据可视化 算法
数据处理方法—— 7 种数据降维操作 !!
数据处理方法—— 7 种数据降维操作 !!
204 0
|
1月前
|
机器学习/深度学习 人工智能 测试技术
VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测
构建预训练时间序列模型的主要挑战在于获取高质量、多样化的时间序列数据。目前有两种方法:迁移学习LLM(如GPT-4或Llama)和从零训练。尽管迁移学习可行,但效果有限;从零训练则依赖大量数据,如MOIRAI、TimesFM和TTM等模型所示。为解决这一难题,研究人员提出利用图像数据进行时间序列预测。
165 10
VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测
|
SQL 测试技术
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
Python
【Python】如何判断时间序列数据是否为平稳时间序列或非平稳时间序列?
本文介绍了如何通过观察均值和方差的变化、ADF单位根检验、KPSS检验以及差分操作来判定时间序列数据是否为平稳或非平稳,并提供了Python代码示例进行实际检验。
102 0
【Python】如何判断时间序列数据是否为平稳时间序列或非平稳时间序列?
|
6月前
|
前端开发 数据挖掘
使用R语言进行非参数统计分析
【4月更文挑战第27天】R语言非参数统计分析,适用于数据分布未知或不满足正态分布的情况。常用方法包括秩和检验、符号秩检验、Spearman秩相关及Kruskal-Wallis H检验,可通过`wilcox.test`、`signrank.test`、`cor.test`和`kruskal.test`等函数实现。在社会、生物、经济等领域广泛应用,结果解释与验证可借助`summary`、`plot`、自助法和置换测试。通过实例展示了如何使用R进行非参数分析,以比较不同治疗方法的效果。R为非参数统计提供强大工具,助力复杂现象理解和预测。
108 0
|
6月前
|
运维 算法 C++
R语言时间序列分解和异常检测方法应用案例
R语言时间序列分解和异常检测方法应用案例
|
6月前
|
数据可视化
R语言时间序列数据指数平滑法分析交互式动态可视化
R语言时间序列数据指数平滑法分析交互式动态可视化
|
6月前
R语言混合时间模型预测对时间序列进行点估计
R语言混合时间模型预测对时间序列进行点估计
下一篇
无影云桌面