Python Pandas 日期功能
扩展时间序列,日期功能在金融数据分析中起着重要作用。在处理日期数据时,我们经常会遇到以下情况:
- 生成日期序列
- 将日期序列转换为不同的频率
创建日期范围
使用 date.range() 函数,通过指定周期和频率,我们可以创建日期序列。默认情况下,日期范围的频率是天。
import pandas as pd
print pd.date_range('1/1/2011', periods=5)
它的 输出 如下:
DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'],
dtype='datetime64[ns]', freq='D')
更改日期频率
import pandas as pd
print pd.date_range('1/1/2011', periods=5,freq='M')
它的 输出 如下:
DatetimeIndex(['2011-01-31', '2011-02-28', '2011-03-31', '2011-04-30', '2011-05-31'],
dtype='datetime64[ns]', freq='M')
bdate_range
bdate_range() 表示营业日期范围。与date_range()不同,它排除星期六和星期日。
import pandas as pd
print pd.date_range('1/1/2011', periods=5)
它的 输出 如下:
DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'],
dtype='datetime64[ns]', freq='D')
观察一下,在3月3日之后,日期跳到了3月6日,不包括4日和5日。请检查您的日历以获取这几天的信息。
方便的函数,例如 date_range 和 bdate_range ,使用了多种频率别名。date_range的默认频率是按日历日计算,而bdate_range的默认频率是按工作日计算。
import pandas as pd
start = pd.datetime(2011, 1, 1)
end = pd.datetime(2011, 1, 5)
print pd.date_range(start, end)
它的 输出 如下:
DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'],
dtype='datetime64[ns]', freq='D')
偏移别名
一些字符串别名被赋予了常见的时间序列频率。我们将这些别名称为偏移别名。
别名 | 描述 | 别名 | 描述 |
---|---|---|---|
B | 工作日频率 | BQS | 季度开始的工作日频率 |
D | 日历日频率 | A | 年度结束频率 |
W | 每周频率 | BA | 工作年度结束频率 |
M | 月末频率 | BAS | 工作年度开始频率 |
SM | 半月末频率 | BH | 工作小时频率 |
BM | 工作月末频率 | H | 小时频率 |
MS | 月初频率 | T, min | 分钟频率 |
SMS | SMS半月初频率 | S | 秒钟频率 |
BMS | 工作月初频率 | L, ms | 毫秒 |
Q | 季度末频率 | U, us | 微秒 |
BQ | 工作季度末频率 | N | 纳秒 |
QS | 季度开始频率 |