目录
- Ⅰ Python基础
- 1. Python入门
- 2. 流程控制
- 3. Python函数使用
- 4. Python中的列表
- 5. 字典
- 6. Python中的字符串
- 7. 异常处理
- Ⅱ Python 进阶
- Ⅲ Python常用类库
- 1. 正则表达式
- 2. 文件读写
- 3. 文件操作
- 4. CSV与JSON
- 5. 日期与时间
- 6. 文本文件
- Ⅳ Python日常工具
- 1. 用 Python 处理电子表格
- 2. DOCX 文档解析与处理
- 3. 用Python进行图像处理
- 4. 使用Python处理PDF文档
- 5. Web信息解析与处理
- 6. Web信息生成与发布
- 7. 自动化Email处理
- 8. 杂项
- Ⅴ 专题
- 1. Pillow图像处理
- 2. OpenCV处理
- 3. 数据库自动化报表处理:使用SQLite
- 4. Python和Web
- 5. Web信息处理
- 6. Web模板引擎
- 7. XML 处理
- Ⅵ 图像处理:使用scikit-image
- 1. skimage数字图像处理基础
- 2. skimage数字图像处理中级
- 3. skimage数字图像处理高级
- Ⅶ 科学计算
- 1. NumPy数值计算
- 2. SciPy科学类库
- 3. SymPy符号运算
- 4. Matplotlib绘图
- 5. Pandas 第一部分
- 6. Pandas 第二部分
- 6.1. Pandas排序
- 6.2. Pandas字符串和文本数据
- lower()函数示例
- upper()函数示例
- len()函数示例
- strip()函数示例
- split(pattern)函数示例
- cat(sep=pattern)函数示例
- get_dummies()函数示例
- contains()函数示例
- replace(a,b)函数示例
- repeat(value)函数示例
- count(pattern)函数示例
- startswith(pattern)函数示例
- endswith(pattern)函数示例
- find(pattern)函数示例
- findall(pattern)函数示例
- swapcase()函数示例
- islower()函数示例
- isupper()函数示例
- isnumeric()函数示例
- 6.3. Pandas选项和自定义
- 6.4. Pandas索引和选择数据
- 6.5. Pandas统计函数
- 6.6. Pandas窗口函数
- 6.7. Pandas聚合
- 6.8. Pandas缺失数据
- 6.9. Pandas分组(GroupBy)
- 6.10. Pandas合并/连接
- 6.11. Pandas级联
- 7. Pandas 第三部分
- Ⅷ 自然语言与知识图谱
上一个主题
下一个主题
>>> from env_helper import info; info()
待更新
7.1. Pandas日期功能¶
日期功能扩展了时间序列,在财务数据分析中起主要作用。在处理日期数据的同时,我们经常会遇到以下情况 -
生成日期序列
将日期序列转换为不同的频率
创建一个日期范围¶
通过指定周期和频率,使用 date.range()
函数就可以创建日期序列。
默认情况下,范围的频率是天。参考以下示例代码 -
>>> import pandas as pd
>>> datelist = pd.date_range('2020/11/21', periods=5)
>>>
>>> datelist
DatetimeIndex(['2020-11-21', '2020-11-22', '2020-11-23', '2020-11-24',
'2020-11-25'],
dtype='datetime64[ns]', freq='D')
更改日期频率¶
>>> pd.date_range('2020/11/21', periods=5,freq='M')
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(['2011-11-03', '2011-11-04', '2011-11-05', '2011-11-06',
'2011-11-07'],
dtype='datetime64[ns]', freq='D')
观察到11月3日以后,日期跳至11月6日,不包括4日和5日(因为它们是周六和周日)。
像date_range和bdate_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 | 季度开始频率 |