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() 代表业务日期范围。与 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_rangebdate_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')

偏移别名

为有用的常见时间序列频率提供了许多字符串别名。我们将这些别名称为偏移别名。

别名 描述 别名 描述
工作日频率 BQS 业务季度开始频率
D 日历日频率 A 年(年)结束频率
每周频率 学士 业务年终频率
中号 月末频率 商业自动化系统 营业年度开始频率
SM 半月结束频率 乙肝 营业时间频率
BM 营业月结束频率 H 每小时频率
多发性硬化症 月份开始频率 温度,分钟 每分钟频率
短信 短信半月开始频率 S 其次频率
电池管理系统 营业月开始频率 长,毫秒 毫秒
季末频率 你,我们 微秒
贝奇 业务季末频率 纳秒
质量标准 季度开始频率