因为TimeSeries是Series的一个子类,所以在数据选取方面与Series是一样的。
创建一个时间序列ts用来举例:
1.通过索引选取,可以给索引创建一个变量,也可以直接用索引取
In:stamp = ts.index[2]print(ts[stamp])print(ts[ts.index[2]])print(ts[2])2.传入一个可以被解释为日期的字符串
In:print(ts['20110102'])print(ts['1/2/2011'])print(ts['2011-01-02'])如果我们用的是一段较长的时间序列,可能我们需要取某一段时间的数据,这就需要对时间序列选取某段时间的数据切片。
先创建一个较长的时间序列longer_tp用来举例:
1.选取“年”或者“年月”的数据切片
In:print(longer_tp['2011'])print(longer_tp['2011-05'])2.选取某个日期之后的数据切片
In:print(longer_tp[datetime(2011,1,2):])3.选取某段时间的数据切片,也可以用不存在于该时间序列的时间戳对其进行切片。输入的日期可以为datetime、timestamp或字符串日期。
In:print(longer_tp[datetime(2011,1,2):datetime(2011,2,2)])print(longer_tp[datetime(2010,12,1):datetime(2011,1,10)])print(longer_tp['2011-01-01 00:00:00':'2011-02-01 00:00:00'])print(longer_tp['20110101':'20110201'])4.还有一种是用truncate方法
In:print(longer_tp.truncate(after = '1/9/2011'))在某些应用场景中,可能会存在一个时间点有多个观测数据的情况,这时我们用时间点选取数据时,该时间点有几个观测数据,就会输出几个观测数据。
创建一个重复时间序列dup_ts用来举例:
可以用过检查索引的is_unique属性检查时间序列是否唯一,若唯一则输出True,不唯一输出False。
In:print(dup_ts.index.is_unique)1.选取不重复的时间点
In:print(dup_ts[datetime(2011,1,3)])2.选取重复的时间点
In:print(dup_ts[datetime(2011,1,2)])