【时间序列(四)】【频率和日期偏移量+WOM日期(移动数据+通过偏移量对日期进行位移)】
上一篇:【时间序列(三)】【带有重复索引的时间序列+日期的范围、频率以及移动+生成日期范围
频率和日期偏移量
pandas中的频率是由一个基础频率(base frequency)和一个乘数组成的。基础频率通常以一个字符串别名表示,比如"M"表示每月,"H"表示每小时。对于每个基础频率,都有一个被称为日期偏移量(date offset)的对象与之对应。例如,按小时计算的频率可以用Hour类表示。
=====================================
传入一个整数即可定义偏移量的倍数
=====================================
一般来说,无需明确创建这样的对象,只需使用诸如"H"或"4H"这样的字符串别名 即可。在基础频率前面放上一个整数即可创建倍数。
=====================================
大部分偏移量对象都可通过加法进行连接
=====================================
你也可以传入频率字符串(如"2h30min"),这种字符串可以被高效地解析 为等效的表达式
=====================================
有些频率所描述的时间点并不是均匀分隔的。例如,“M”(日历月末)和"BM"(每 月最后一个工作日)就取决于每月的天数,对于后者,还要考虑月末是不是周末。
用户可以根据实际需求自定义一些频率类以便提供pandas所没有的日期逻辑。
WOM日期
WOM(Week Of Month)是一种非常实用的频率类,它以WOM开头。它使你能获得诸如“每月第3个星期五”之类的日期。
移动(超前和滞后)数据
移动(shifting)指的是沿着时间轴将数据前移或后移。Series和DataFrame都有一 个shift方法用于执行单纯的前移或后移操作,保持索引不变。
进行移动时,就会在时间序列的前面或后面产生缺失数据。
=====================================
shift通常用于计算一个时间序列或多个时间序列(如DataFrame的列)中的百分比 变化。
=====================================
由于单纯的移位操作不会修改索引,所以部分数据会被丢弃。因此,如果频率已知,则可以将其传给shift以便实现对时间戳进行位移而不是对数据进行简单位移
=====================================
使用其他频率,对数据进行超前和滞后处理
通过偏移量对日期进行位移
pandas的日期偏移量还可以用在datetime或Timestamp对象
=====================================
如果加的是锚点偏移量(比如MonthEnd),第一次增量会将原日期向前滚动到符 合频率规则的下一个日期
=====================================
通过锚点偏移量的rollforward和rollback方法,可明确地将日期向前或向后“滚动”。
=====================================
日期偏移量还有一个巧妙的用法,即结合groupby使用这两个“滚动”方法
=====================================
更简单、更快速地实现该功能的办法是使用resample
++++++++++++++++++++++++++++++++++++
下一篇:【时间序列(五)】待更新