Py学习  »  Python

Python 进阶视频课 - 7. Pandas 时间序列

王的机器 • 5 年前 • 583 次点击  

这是 Python 进阶课的第七节 - 时间序列,进阶课的目录如下:


  1. NumPy 上

  2. NumPy 下

  3. Pandas 上

  4. Pandas 下

  5. SciPy 上

  6. SciPy 下


之前基础版的 11 节的目录如下:


  1. 编程概览

  2. 元素型数据

  3. 容器型数据

  4. 流程控制:条件-循环-异常处理

  5. 函数上:低阶函数

  6. 函数下:高阶函数

  7. 类和对象:封装-继承-多态-组合

  8. 字符串专场:格式化和正则化

  9. 解析表达式:简约也简单

  10. 生成器和迭代器:简约不简单

  11. 装饰器:高端不简单



Pandas 中的 DataFrame 非常适合金融时间序列的建模,用以下数据格式


  • index 是一组时间日期

  • columns 是资产或因子

  • value 是对应的值


学完本课后你会:


1. 了解时间序列数据类型的基本概念 (日期时间、期、频率、转换日期格式、用日期做切片) 基本函数 (shift, diff, pct_change 等)


2. 标准化和重采样操作


一般来讲,不同股票价格的量纲不同,不同股票时间序列的频率也不同,在比较时通常会用


  • 标准化 (standardization) 调成同量纲 (same scale)

  • 重采样 (resample) 调成同频率 (same frequency)


多个时间序列的频率可能不同,为了比较它们,通常需要改变某些序列的频率,这个过程叫做重采样 (resampling),有两种方法:


  • 上采样 (upsampling):将低频数据变成高频数据,填充 (fill) 或者内插 (interpolate) 中间缺失值。


  • 下采样 (downsampling):将高频数据变成低频数据,将多个数据整合 (aggregate) 为一个。


上采样和下采样的比较图如下:



3. 计算多种滚动指标


  • 窗口期 (window) 定义时间序列的子期 (sub-period)。

  • 在窗口期中计算每一个子期的指标

  • 创建一个关于指标的新的时间序列

  • 两种窗口期:

    • Rolling: 相同大小,滑动

    • Expanding: 越来越大,扩张


下图展示了 rolling 和 expanding 的区别。




以上三个知识点就是该课的前三节,之后就可以在第四节应用这些知识点来解决实际投资组合的问题,比如


  • 创建任何一个股票投资组合上创建价值加权指数

  • 计算每个成分股的对指数收益的贡献度

  • 比对基准 (benchmark) 评估该组合表现

  • 计算相关性系数矩阵来检查组合的分散度




付费用户(付 1 赠 1)可以获得:


  • 观看课程视频 (108 分钟)

  • Python 代码 (Jupyter Notebook)




Jupyter Notebook

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/105883