社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

王的机器 • 3 年前 • 336 次点击  

这是 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
 
336 次点击