加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Pandas必备技能之“时间序列数据处理”

发布时间:2019-06-13 01:40:55 所属栏目:教程 来源:Little monster翻译整理
导读:时间序列数据Time Series Data是在不同时间上收集到的数据,这类数据是按时间顺序收集到的,用于所描述现象随时间变化的情况。 时间序列分析广泛应用于计量经济学模型中,通过寻找历史数据中某一现象的发展规律,对未来进行预测。 时间序列数据作为时间序

同理,.bfill()代表用后值对空值进行填充,效果如下。

  1. df_daily = df_weekly.resample('D').bfill() 
  2. df_daily 
  3. Out[55]:  
  4.             open  high   low  close         vol 
  5. trade_date                                      
  6. 2018-07-08  9.05  9.05  8.45   8.66  5125563.53 
  7. 2018-07-09  8.69  9.03  8.58   8.88  4901983.84 
  8. 2018-07-10  8.69  9.03  8.58   8.88  4901983.84 
  9. 2018-07-11  8.69  9.03  8.58   8.88  4901983.84 
  10. 2018-07-12  8.69  9.03  8.58   8.88  4901983.84 
  11. 2018-07-13  8.69  9.03  8.58   8.88  4901983.84 
  12. 2018-07-14  8.69  9.03  8.58   8.88  4901983.84 
  13. 2018-07-15  8.69  9.03  8.58   8.88  4901983.84 
  14. 2018-07-16  8.85  8.90  8.66   8.70  1590354.68 
  15. 2018-07-17  8.85  8.90  8.66   8.70  1590354.68 
  16. 2018-07-18  8.85  8.90  8.66   8.70  1590354.68 
  17. 2018-07-19  8.85  8.90  8.66   8.70  1590354.68 
  18. 2018-07-20  8.85  8.90  8.66   8.70  1590354.68 
  19. 2018-07-21  8.85  8.90  8.66   8.70  1590354.68 
  20. 2018-07-22  8.85  8.90  8.66   8.70  1590354.68 

03、时间窗口函数

当我们想要比较数据在相同时间窗口的不同特征和变化时,可以借助窗口函数rolling【6】进行计算。

看一个实例:计算股票收盘价的移动平均值。

  1. df = df[['ts_code', 'close']] 
  2. df 
  3. Out[58]:  
  4.               ts_code  close 
  5. trade_date                   
  6. 2018-07-02  000001.SZ   8.61 
  7. 2018-07-03  000001.SZ   8.67 
  8. 2018-07-04  000001.SZ   8.61 
  9. 2018-07-05  000001.SZ   8.60 
  10. 2018-07-06  000001.SZ   8.66 
  11. 2018-07-09  000001.SZ   9.03 
  12. 2018-07-10  000001.SZ   8.98 
  13. 2018-07-11  000001.SZ   8.78 
  14. 2018-07-12  000001.SZ   8.88 
  15. 2018-07-13  000001.SZ   8.88 
  16. 2018-07-16  000001.SZ   8.73 
  17. 2018-07-17  000001.SZ   8.72 
  18. 2018-07-18  000001.SZ   8.70 

调用rolling函数,通过设置参数window的值规定窗口大小,这里设置为3,并且调用.mean()方法计算窗口期为3天的均值,结果如下。

其中,'20180704'当天的平均值等于'20180702'-'20180704'三天的收盘价取平均的结果,'20180705'当天的平均值等于'20180703'-'20180705'三天的收盘价取平均的结果,以此类推。

  1. df['MA3'] = df['close'].rolling(3).mean() 
  2. df 
  3. Out[76]:  
  4.               ts_code  close       MA3 
  5. trade_date                             
  6. 2018-07-02  000001.SZ   8.61       NaN 
  7. 2018-07-03  000001.SZ   8.67       NaN 
  8. 2018-07-04  000001.SZ   8.61  8.630000 
  9. 2018-07-05  000001.SZ   8.60  8.626667 
  10. 2018-07-06  000001.SZ   8.66  8.623333 
  11. 2018-07-09  000001.SZ   9.03  8.763333 
  12. 2018-07-10  000001.SZ   8.98  8.890000 
  13. 2018-07-11  000001.SZ   8.78  8.930000 
  14. 2018-07-12  000001.SZ   8.88  8.880000 
  15. 2018-07-13  000001.SZ   8.88  8.846667 
  16. 2018-07-16  000001.SZ   8.73  8.830000 
  17. 2018-07-17  000001.SZ   8.72  8.776667 
  18. 2018-07-18  000001.SZ   8.70  8.716667 

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读