《利用Python进行数据分析》 11.6 重新采样和频率转换(一)

11.6 重新采样和频率转换


       重新采样是指将时间序列从一个频率转换为另一个频率的过程。

       将更高频率的数据聚合到低频率被称为向下采样,而从低频率转换到高频率称为向上采样。

       并不是所有的重新采样都属于上面说的两类;例如,将W-WED(weekly on Wednesday,每周三)转换到W-FRI(每周五)既不是向上采样也不是向下采样。

       pandas对象都配有resample方法,该方法是所有频率转换的工具函数。resample拥有类似于groupby的API;你调用resample对数据分组,之后再调用聚合函数。

1.resample是一个灵活且高性能的方法,可以用于处理大型时间序列(见图11-1)

15259227-27d409de3cddf72a.png
图11-1:resample示例

:resample方法参数(见表11-1)

15259227-66dfde6a24cacb2e.png
表11-1:resample方法参数

11.6.1 向下采样


向下采样将数据聚合在一个规则的低频率上。

聚合的数据不必是固定频率的,期望的频率定义了用于对时间序列切片以聚合的箱体边界。

在使用resample进行向下采样数据时有些事情需要考虑:

· 每段间隔的哪一边是闭合的

· 如何在间隔的起始或结束位置标记每个已聚合的箱体

扫描二维码关注公众号,回复: 5194006 查看本文章

示例:一分钟之内的数据(见图11-2)

15259227-2d73f0624639f957.png
图11-2:一分钟之内的数据

:传递的频率按五分钟的增量定义了箱体边界。默认情况下,左箱体边界是包含的,因此00:00的值是包含在00:00到00:05间隔内的,传递closed='right’将间隔的闭合端改为了右边。

1.参数closed的用法(见图11-2、11-3)

传递closed='right’会将间隔的闭合端改为了右边。

15259227-1997e0ca24a1c141.png
图11-3:closed的用法

2.参数label的用法(见图11-4)

       产生的时间序列按照每个箱体左边的时间戳被标记。传递label='right’你可以使用右箱体边界标记时间序列。

15259227-d8264c109e7ec4bf.png
图11-4:label的用法

阐明:分钟频率数据按五分钟频率进行的重新采样(见图11-5)

15259227-24127c40b58d1f56.png
图11-5::closed、label约定的五分钟重新采样示意图

3.参数loffset用法(见图11-6)

       向loffset传递字符串或日期偏置将结果索引移动一定的数量,例如从右边缘减去一秒,以使其更清楚地表明时间戳所指的间隔。

       也可以通过在结果上调用shift方法来完成loffset的效果。

15259227-258eba1f2c8e7dc3.png
图11-6:loffset用法

11.6.1.1 开端-峰值-谷值-结束(OHLC)重新采样


       在金融中,为每个数据桶计算四个值是一种流行的时间序列聚合方法:第一个值(开端)、最后一个值(结束)、最大值(峰值)和最小值(谷值)

1.使用ohlc聚合函数你将会获得包含四种聚合值列的DataFrame,这些值在数据的单次扫描中被高效计算(见图11-7)

15259227-3dbeb5e40b3beb58.png
图11-7:ohic聚合函数的用法

猜你喜欢

转载自blog.csdn.net/weixin_33980459/article/details/87231596