Pandas时间序列:频率和日期偏移量

import pandas as pd
import numpy as np

一、介绍

  • pandas中的频率是由一个基础频率(例如“日”、“月”)和一个乘数组成。
  • 基础频率通常以一个字符串别名表示,比如“D”表示日,“M”表示月。
  • 对于每个基础频率,都有一个被称为日期偏移量(date offset)的对象与之对应,比如日期偏移量Hour对应的频率是H。

二、日期偏移量

from pandas.tseries.offsets import Hour,Minute
hour = Hour()
four_hour = Hour(4)
print(hour)
print(four_hour)
<Hour>
<4 * Hours>

三、频率

pd.date_range('1/1/2000','1/3/2000',freq='4h')
DatetimeIndex(['2000-01-01 00:00:00', '2000-01-01 04:00:00',
               '2000-01-01 08:00:00', '2000-01-01 12:00:00',
               '2000-01-01 16:00:00', '2000-01-01 20:00:00',
               '2000-01-02 00:00:00', '2000-01-02 04:00:00',
               '2000-01-02 08:00:00', '2000-01-02 12:00:00',
               '2000-01-02 16:00:00', '2000-01-02 20:00:00',
               '2000-01-03 00:00:00'],
              dtype='datetime64[ns]', freq='4H')

四、日期偏移量(频率)的组合

偏移量相加

Hour(2)+Minute(30)
<150 * Minutes>

频率组合

pd.date_range('1/1/2000',periods=10,freq='1h30min')
DatetimeIndex(['2000-01-01 00:00:00', '2000-01-01 01:30:00',
               '2000-01-01 03:00:00', '2000-01-01 04:30:00',
               '2000-01-01 06:00:00', '2000-01-01 07:30:00',
               '2000-01-01 09:00:00', '2000-01-01 10:30:00',
               '2000-01-01 12:00:00', '2000-01-01 13:30:00'],
              dtype='datetime64[ns]', freq='90T')

五、常用频率与日期偏移量

频率 日期偏移量 说明
D Day 日历日
B BusinessDay 工作日
H Hour 小时
T或min Minute
S Second
L或ms Milli 毫秒
U Micro 微秒
M MonthEnd 每月最后一个日历日
BM BusinessMonthEnd 每月最后一个工作日
MS MonthBegin 每月第一个日历日
BMS BussinessMonthBegin 每月第一个工作日
W-MON、W-TUE、… Week 指定星期几(MON、TUE、WED、THU、FRI、SAT、SUN)
WOM-1MON、WOM-2MON、… WeekOfMonth 产生每月第一、第二、第三或第四周的星期几。例如WOM-3FRI表示每月第3个星期五
Q-JAN、Q-FEB、… QuarterEnd 以指定月份结束的年度,每季度最后一个月的最后一个日历日
BQ-JAN、BQ-FEB、… BusinessQuarterEnd 以指定月份结束的年度,每季度最后一个月的最后一个工作日
QS-JAN、QS-FEB、… QuarterBegin 以指定月份结束的年度,每季度最后一个月的第一个日历日
BQS-JAN、BQS-FEB、… BusinessQuarterBegin 以指定月份结束的年度,每季度最后一个月的第一个工作日
A-JAN、A-FEB、… YearEnd 每年指定月份的最后一个日历日
BA-JAN、BA-FEB、… BusinessYearEnd 每年指定月份的最后一个工作日
AS-JAN、AS-FEB、… YearBegin 每年指定月份的第一个日历日
BAS-JAN、BAS-FEB、… BusinessYearBegin 每年指定月份的第一个工作日
pd.date_range('1/1/2000','9/1/2000',freq='WOM-3FRI')
DatetimeIndex(['2000-01-21', '2000-02-18', '2000-03-17', '2000-04-21',
               '2000-05-19', '2000-06-16', '2000-07-21', '2000-08-18'],
              dtype='datetime64[ns]', freq='WOM-3FRI')

猜你喜欢

转载自blog.csdn.net/bqw18744018044/article/details/80920855