前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小蛇学python(17)时间序列的数据处理

小蛇学python(17)时间序列的数据处理

作者头像
用户2145057
发布2018-09-12 15:25:59
1K0
发布2018-09-12 15:25:59
举报

不管是在金融学、经济学的社会学科领域,还是生态学、系统神经的自然学科领域,时间序列数据都是一种重要的结构化数据形式。

jupyter notebook在pycharm中的使用

我也是最近无意中才发现,jupyter notebook可以在pycharm中使用的。在写教学文档方面,因为jupyter有着像命令行一样即时输出的特点,比建立工程运行的方式要方便许多。将这个小功能推荐给大家,也建议大家在学习python的时候多用用jupyter。

基础

image.png

从这个小例子也可以看出jupyter notebook的好处,非常适合新手学习python的时候使用。同时这个例子也是最基础的时间序列类型。

datetime以毫秒形式存储日期和时间,两个日期相减得到所差毫秒数,同时也可以换算成天数和小时数。

image.png

在日常生活中,时间通常是以字符串的形式保存的,python中也提供了字符串和datetime相互转换的方法。

image.png

以下是常用的格式化编码。

代码

说明

%Y

4位数的年

%y

2位数的年

%m

2位数的月

%d

2位数的日

%H

24小时制的时

%I

12小时制的时

%M

2位数的分

%S

秒[0, 61], 60、61用于闰秒

%w

用整数表示的星期几

通过已知格式对日期进行解析当然最准确的做法,但是这种做法过于准确而显得比较麻烦。这种情况下,可以这样做。

image.png

从上图可以看出,parse解析器的功能相当强大,很多格式随意的时间字符串都可以解析成正确的时间。当然,遗憾的是,中文不可以。

下面我们来建立一个时间序列的数据集。

image.png

然后我们开始学习如何索引、选取、以及构造子集。

image.png

一门语言有一门语言的特色,其实pandas、numpy、还有现在学习的时间序列,它们对数据的索引选取都是大同小异的。只要掌握其中一个,其他包的索引基本也就都会了。

这一点在不同包的函数命名上也有所体现。细心的朋友可以发现,我并没有介绍data_range()这个函数,其实它和numpy中的range()是一样的,只有一些细节,参数会有变化。

比如。

image.png

freq这个参数可以决定取样的类型,BM就代表取每个月的最后一天。怎么说呢,越用越感觉到python的完善与强大。freq这个参数可以选择的类型有很多。如下是我经常用到总结下来的。

代码

说明

D

B

工作日

H

T

S

L

毫秒

U

微秒

BM

每月最后一个工作日

移动与滞后数据也是一个很常见的操作。

image.png

重采样、频率转换

上面介绍了一些有关时间序列的基础操作,接下来介绍一些进阶内容。 在做实验的时候,我们最常涉及的就是采样。

image.png

image.png

image.png

我们发现这段程序所实现的功能是,每五分钟采样,并将该五分钟内的值求和赋给新采样的频率。

以上是降采样,升采样是一样的,只不过可能会有一些插值操作,这里不予介绍。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档