日期功能扩展了时间序列,在财务数据分析中起主要作用。在处理日期数据的同时,我们经常会遇到以下情况 -

  • 生成日期序列
  • 将日期序列转换为不同的频率

创建一个日期范围

通过指定周期和频率,使用date.range()函数就可以创建日期序列。 默认情况下,范围的频率是天。参考以下示例代码 -

import pandas as pd

datelist = pd.date_range('2020/11/21', periods=5)
print(datelist)

输出结果:

DatetimeIndex(['2020-11-21', '2020-11-22', '2020-11-23', '2020-11-24',
'2020-11-25'],
dtype='datetime64[ns]', freq='D')
 

更改日期频率

import pandas as pd

datelist = pd.date_range('2020/11/21', periods=5,freq='M')
print(datelist)

输出结果:

DatetimeIndex(['2020-11-30', '2020-12-31', '2021-01-31', '2021-02-28',
'2021-03-31'],
dtype='datetime64[ns]', freq='M')
 

bdate_range()函数

bdate_range()用来表示商业日期范围,不同于date_range(),它不包括星期六和星期天。

import pandas as pd

datelist = pd.date_range('2011/11/03', periods=5)
print(datelist)

输出结果:

DatetimeIndex(['2017-11-03', '2017-11-06', '2017-11-07', '2017-11-08',
'2017-11-09'],
dtype='datetime64[ns]', freq='B')
 

观察到11月3日以后,日期跳至11月6日,不包括4日和5日(因为它们是周六和周日)。

date_rangebdate_range这样的便利函数利用了各种频率别名。date_range的默认频率是日历中的自然日,而bdate_range的默认频率是工作日。参考以下示例代码 -

import pandas as pd

start = pd.datetime(2017, 11, 1)
end = pd.datetime(2017, 11, 5)
dates = pd.date_range(start, end)
print(dates)

输出结果:

DatetimeIndex(['2017-11-01', '2017-11-02', '2017-11-03', '2017-11-04',
'2017-11-05'],
dtype='datetime64[ns]', freq='D')
 

偏移别名

大量的字符串别名被赋予常用的时间序列频率。我们把这些别名称为偏移别名。

别名 描述说明
B 工作日频率
BQS 商务季度开始频率
D 日历/自然日频率
A 年度(年)结束频率
W 每周频率
BA 商务年底结束
M 月结束频率
BAS 商务年度开始频率
SM 半月结束频率
BH 商务时间频率
SM 半月结束频率
BH 商务时间频率
BM 商务月结束频率
H 小时频率
MS 月起始频率
T, min 分钟的频率
SMS SMS半开始频率
S 秒频率
BMS 商务月开始频率
L, ms 毫秒
Q 季度结束频率
U, us 微秒
BQ 商务季度结束频率
N 纳秒
BQ 商务季度结束频率
QS 季度开始频率

最新文章

  1. WPF中的依赖项属性
  2. PHP 位移运算符(<<左移和>>右移)
  3. centOS 6.x 版本安装 node.js 4.x 以上版本的方法
  4. cocos2d-x 3.0 画图节点——Node
  5. 读书笔记:javascript高级程序设计
  6. 增强型for语句与java,c#的不同之处,with语句的使用
  7. hive下UDF函数的使用
  8. 我的第一个chrome浏览器扩展 5分钟学习搞定
  9. 【原创】Linux基础之redhat6升级glibc-2.12到2.14
  10. odoo 响应下载文件
  11. 多功能版vue日历控件
  12. 颠覆区块链的钱包——AngelToken钱包
  13. python selenium 爬取淘宝
  14. linux系统调用之网络管理1
  15. [CF896C]Willem, Chtholly and Seniorious(珂朵莉树)
  16. pytest.11.生成xml格式的测试报告
  17. ORACLE ERP consolidation流程(一)
  18. Spring Boot切换为APR模式
  19. [CLPR] 定位算法探幽 - 边缘和形态学
  20. mybatis的#和$的差别

热门文章

  1. leetcode 903. DI序列的有效排列
  2. C++语言编程规范
  3. Maven依赖以及项目创建
  4. POJ 1146 ID Codes 用字典序思想生成下一个排列组合
  5. Idea java 中导包路径分析
  6. Android模拟器太慢怎么办?使用微软的VS模拟器
  7. 【02】Python:数据类型和运算符
  8. NET/Regex 处理连续空格
  9. VirtualBox安装Ubutu出错
  10. tkinter的单选Radiobutto