第11章 时间序列
时间序列数据的意义取决于具体的应用场景,主要有以下几种:
时间戳(timestamp),特定的时刻。
固定时期(period),如2007年1月或2010年全年。
时间间隔(interval),由起始和结束时间戳表示。时期(period)可以被看做间隔(interval)的特例。
实验或过程时间,每个时间点都是相对于特定起始时间的一个度量。
11.1 日期和时间数据类型及工具
Python标准库包含用于日期(date)和时间(time)数据的数据类型,而且还有日历方面的功能。主要会用到datetime、time以及calendar模块。datetime.datetime是用得最多的数据类型:
datetime以毫秒形式存储日期和时间。timedelta表示两个datetime对象之间的时间差:
datetime模块中的数据类型:
tzinfo存储时区信息的基本类型。
- 字符串和datetime的相互转换
利用str或strftime方法(传入一个格式化字符串),datetime对象和pandas的Timestamp对象可以被格式化为字符串:
datetime格式定义:
datetime.strptime可以用这些格式化编码将字符串转换为日期:
用dateutil第三方包中的parser.parse方法不用进行日期解析时编写格式定义。
11.2 时间序列基础
不同索引的时间序列之间的算术运算会自动按日期对齐。
- 索引、选取、子集构造
大部分时间学列数据都是按照是时间先后排序的,则可以用不存在于该时间序列中的是时间戳对其进行切片(即范围查询):
- 带有重复索引的时间序列
要对具有非唯一时间戳的数据进行聚合。一个方法是使用groupby,