在讲pandas时间序列函数之前,我大概介绍下什么是时间序列(time series)。时间序列(time series)简单的说就是各时间点上形成的数值序列,时间序列(time series)分析就是通过观察历史数据预测未来的值。比如股票预测、房价预测分析等。本篇文章主要详细讲解生成时间索引的函数date_range及延伸函数。
pandas.date_range
pandas.date_range()这个函数主要是返回固定频率的时间索引,参数比较多,下面我们依次演示常用的参数用法。
根据指定的起止时间,生成时间序列import pandas as pdpd.date_range(start='2019-1-09', end='2019-1-31')
根据起止时间生成
根据起止时间,并指定时间序列数量pd.date_range(start='2019-1-09', end='2019-1-10',periods=10)
根据指定数量生成
根据开始时间和指定数量生成pd.date_range(start='2019-1-09',periods=10)
根据开始时间和periods生成
根据指定的频率生成时间点pd.date_range(start='2019-1-09',periods=10,freq='H')
指定以小时为频率
比较上面可以看出,date_range中默认以天为频率,如果我们需要其他单位的频率必须用freq这个参数指定,并且可以是基础频率的倍数,如下:
pd.date_range(start='2019-1-09',periods=10,freq='12H')
freq=12H
这里可选的频率有很多,大家在使用的时候查看官方文档即可,这里不在一一举例,附一张官方文档中的图。
频率可选值
根据closed参数选择是否包含开始和结束时间,left包含开始时间,不包含结束时间,right与之相反。pd.date_range(start='2019-01-09', end='2019-01-14', closed=None)pd.date_range(start='2019-01-09', end='2019-01-14', closed='left')pd.date_range(start='2019-01-09', end='2019-01-14', closed='right')
closed空值起止时间
时间序列作为索引并根据索引取值
生成时间序列
根据时间索引取值
truncate过滤
time.truncate(before='2019-01-12')
可以看到truncate这个函数将before指定日期之前的值全部过滤出去。既然有before,那么就有after,如下:
time.truncate(after='2019-01-12')
过滤after之后的数据
pandas.Timestamp
这个类主要是用来生成时间戳的,如下:
pd.Timestamp('2019-01-10')
pandas.Timedelta
pd.Timedelta('2day')
pd.Timestamp('2019-01-10')+pd.Timedelta('2day')