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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件开发 -- 分享 互助 成长

散列表(哈希表)

序言: 如果将一系列的记录按照关键字的某种函数存储,那么在查找某个数据的时候就可以直接通过关键字计算出来了,而不在需要“比较”,这样会非常高效,这就是散列技术。...

19780
来自专栏数说工作室

统计师的Python日记【第七天:数据清洗(1)】

本文是【统计师的Python日记】第7天的日记 回顾一下: 第1天学习了Python的基本页面、操作,以及几种主要的容器类型。 第2天学习了python的函数、...

565100
来自专栏java一日一条

Java 8:HashMap的性能提升

HashMap是一个高效通用的数据结构,它在每一个Java程序中都随处可见。先来介绍些基础知识。你可能也知道,HashMap使用key的hashCode()和e...

8620
来自专栏华章科技

令人困惑的TensorFlow!谷歌大脑工程师帮你解决麻烦

导读:虽然对于大多数人来说 TensorFlow 的开发语言是 Python,但它并不是一个标准的 Python 库。这个神经网络框架通过构建「计算图」来运行,...

17630
来自专栏灯塔大数据

每周学点大数据 | No.12数据流中的频繁元素

No.12期 数据流中的频繁元素 Mr. 王:我们再来讲一个例子,数据流中的频繁元素。我们先来说说大数据的数据流模型。 小可:数据流,是流动的数据的意思吗?和...

33070
来自专栏潇涧技术专栏

Python Algorithms - C5 Traversal

Traversal就是遍历,主要是对图的遍历,也就是遍历图中的每个节点。对一个节点的遍历有两个阶段,首先是发现(discover),然后是访问(visit)。遍...

10010
来自专栏owent

PKU POJ 1724 ROADS 解题报告

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1724

7220
来自专栏简书专栏

基于python的冒泡排序和选择排序

装饰器是python的高级用法,初学者需要单独学习1天才能理解并且熟练运用。 读者如果不理解本节内容,不影响后续内容的理解。 此装饰器只是计算函数运行花费的...

11940
来自专栏Rovo89

UML类图的学习笔记

11730
来自专栏Crossin的编程教室

【Python 第60课】 随机数

有些时日没发新课了,今天来说一说python中的random模块。 random模块的作用是产生随机数。之前的小游戏中用到过random中的randint: i...

38880

扫码关注云+社区

领取腾讯云代金券