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 | 短信半月起始频率 | S | 秒频 |
BMS | 业务月开始频率 | L, ms | 毫秒 |
Q | 季度末频率 | U, us | 微秒 |
BQ | 业务季度末的频率 | N | 纳秒 |
QS | 季度起始频率 |