时间序列基础


时间序列基础

pandas中的基础时间序列种类是由时间戳索引的Series,在pandas外部则通常表示为Python字符串或datetime对象:

在这种情况下,这些datetime对象可以被放入DatetimeIndex中:

和其他Series类似,不同索引的时间序列之间的算术运算在日期上自动对齐:

ts[::2]会将ts中每隔一个的元素选择出。

pandas使用NumPy的datetime64数据类型在纳秒级的分辨率下存储时间戳:

DatetimeIndex中的标量值是pandas的Timestamp对象:

所有使用datetime对象的地方都可以用Timestamp。此外,Timestamp还可以存储频率信息(如果有的话)并了解如何进行时区转换和其他类型操作。

1、索引、选择、子集

当基于标签进行索引和选择时,时间序列的行为和其他的pandas.Series类似:

对一个长的时间序列,可以传递一个年份或一个年份和月份来轻松地选择数据的切片:

这里,字符串’2001’被解释为一个年份,并选择了相应的时间区间。如果指定了月份也是有效的:

使用datetime对象进行切片也是可以的:

有一个等价实例方法,truncate,它可以在两个日期间对Series进行切片:

上面这些操作也都适用于DataFrame,并在其行上进行索引:

2、含有重复索引的时间序列

在某些应用中,可能会有多个数据观察值落在特定的时间戳上。

通过检查索引的is_unique属性,我们可以看出索引并不是唯一的:

假设想要聚合含有非唯一时间戳的数据。一种方式就是使用groupby并传递level=0: