《利用Python进行数据分析》 11.3日期范围、频率和移位

11.3 日期范围、频率和移位


       pandas拥有一整套标准的时间序列频率和工具用于重新采样、推断频率以及生成固定频率的数据范围,可以用来处理固定频率的场景。

1.调用resample方法将样本时间序列转换为固定的每日频率数据(见图11-1)

15259227-f3a7d4a4c9dfed9b.png
图11-1:resample方法

11.3.1 生成日期范围


1.利用pandas.date_range根据特定频率生成指定长度的DatetimeIndex(见图11-2)

15259227-e02faebf92f434dc.png
图11-2:利用date_range生成每日时间戳

2.date_range用法二,只传递一个起始或结尾日期以及传递一个用于生成范围的数字(见图11-3)

15259227-9207dddc633cf29f.png
图11-3:date_range用法2

3.开始日期和结束日期严格的定义了生成日期索引的边界,改变其频率的方法

示例:传递’BM’频率(business end of month ,月度业务结尾生成每月最后业务日期的时间索引(见图11-4)

15259227-f43e866742f2c4cb.png
图11-4:每月最后业务日期时间索引

:基础时间序列频率(见表11-1、11-1(续))

15259227-7fd6802d4094f927.jpg
表11-1:基础时间序列频率
15259227-43e98938ce720895.jpg
表11-1:基础时间序列频率

4.开始或结束时间戳的时间的保留与修改(见图11-5)

15259227-89ead4755a43bf58.png
图11-5:date_range保留以及修改开始或结束时间戳的时间

11.3.2 频率和日期偏置


pandas中的频率是由基础频率和倍数组成的。基础频率通常会有字符串别名,例如’M'代表每月,'H’代表每小时。

1.对于每个基础频率,都有一个对象可以被用于定义日期偏置,每小时的频率可以使用Hour类来表示(如图11-6)

15259227-70a4689fd55ab875.png
图11-6:显式创建基础频率

2.使用字符串别名,不需要显式地创建这些对象,在基础频率前放一个整数以生成倍数(图11-7)

15259227-7118730d76dd1668.png
图11-7:使用字符串别名

3.多个偏置的加法联合(见图11-8)

15259227-314f30970cc0d573.png
图11-8:加法联合

4.传递频率字符串,例如’1h30min’将会有效地转换为同等的表达式(如图11-9)

15259227-db3bd5468dc931bd.png
图11-9:传递频率字符串

:有些频率描述点的时间并不是均匀分隔的。例如,'M'(日历月末)和’BM'(月内最后工作日)取决于当月天数,我们将这些日期称为锚定偏置量。

根据表11-1,可以获得pandas中的频率代码和日期偏置类,用户可以自行定义频率类型,用于提供pandas中没有的日期逻辑


11.3.2.1 月中某星期的日期


1.月中某星期

"月中某星期"(week of month )的日期是一个有用的频率类,以’WOM’开始。

示例:获取每月第三个星期五这样的日期(见图11-10)

15259227-d71b69ea130d13a6.png
图11-10:获取一段时间内每月的第三个星期五

11.3.3 移位(前向和后向)日期

"移位"是指将日期按时间向前移动或向后移动。

1.Series中shift方法用于进行简单的前向或后向移位,而不改变索引(见图11-11)

15259227-23a01cc1c98bb001.png
图11-11:Series中的shirt方法

:由于简单移位并不改变索引,一些数据会被丢弃

2.如果频率是已知的,则可以将频率传递给shift来推移时间戳而不是简单的数据(见图11-12)

15259227-7c0ab7b32a40e36c.png
图11-12:频率传递生成非简单数据

11.3.3.1 使用偏置进行移位日期


1.pandas日期偏置也可以使用datetime或Timestamp对象完成(见图11-13)

15259227-0b9079f9e83e2c44.png
图11-13:pandas日期偏置

2.如果添加了一个锚定偏置量,比如MonthEnd,根据频率规则,第一个增量会将日期“前滚”到下一个日期(见图11-14)

15259227-fb646f29e8d71a14.png
图11-14:锚定偏置量滚动

3.创造性用法:将移位方法与groupby一起使用(见图11-15)

15259227-daa0e9a587298363.png
图11-15:创造性用法

猜你喜欢

转载自blog.csdn.net/weixin_33695082/article/details/87231599
今日推荐