11.6 重新采样和频率转换
重新采样是指将时间序列从一个频率转换为另一个频率的过程。
将更高频率的数据聚合到低频率被称为向下采样,而从低频率转换到高频率称为向上采样。
并不是所有的重新采样都属于上面说的两类;例如,将W-WED(weekly on Wednesday,每周三)转换到W-FRI(每周五)既不是向上采样也不是向下采样。
pandas对象都配有resample方法,该方法是所有频率转换的工具函数。resample拥有类似于groupby的API;你调用resample对数据分组,之后再调用聚合函数。
图11-1:resample示例1.resample是一个灵活且高性能的方法,可以用于处理大型时间序列(见图11-1)
附:resample方法参数(见表11-1)
表11-1:resample方法参数11.6.1 向下采样
向下采样将数据聚合在一个规则的低频率上。
聚合的数据不必是固定频率的,期望的频率定义了用于对时间序列切片以聚合的箱体边界。
在使用resample进行向下采样数据时有些事情需要考虑:
· 每段间隔的哪一边是闭合的
· 如何在间隔的起始或结束位置标记每个已聚合的箱体
示例:一分钟之内的数据(见图11-2)
图11-2:一分钟之内的数据注:传递的频率按五分钟的增量定义了箱体边界。默认情况下,左箱体边界是包含的,因此00:00的值是包含在00:00到00:05间隔内的,传递closed='right’将间隔的闭合端改为了右边。
1.参数closed的用法(见图11-2、11-3)
传递closed='right’会将间隔的闭合端改为了右边。
图11-3:closed的用法2.参数label的用法(见图11-4)
产生的时间序列按照每个箱体左边的时间戳被标记。传递label='right’你可以使用右箱体边界标记时间序列。
图11-4:label的用法阐明:分钟频率数据按五分钟频率进行的重新采样(见图11-5)
图11-5::closed、label约定的五分钟重新采样示意图3.参数loffset用法(见图11-6)
向loffset传递字符串或日期偏置将结果索引移动一定的数量,例如从右边缘减去一秒,以使其更清楚地表明时间戳所指的间隔。
也可以通过在结果上调用shift方法来完成loffset的效果。
图11-6:loffset用法11.6.1.1 开端-峰值-谷值-结束(OHLC)重新采样
在金融中,为每个数据桶计算四个值是一种流行的时间序列聚合方法:第一个值(开端)、最后一个值(结束)、最大值(峰值)和最小值(谷值)
图11-7:ohic聚合函数的用法1.使用ohlc聚合函数你将会获得包含四种聚合值列的DataFrame,这些值在数据的单次扫描中被高效计算(见图11-7)
网友评论