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

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

发布时间:2019-06-16 00:30:41 所属栏目:教程 来源:Little monster翻译整理
导读:时刻序列数据Time Series Data是在差异时刻上网络到的数据,这类数据是定时刻次序网络到的,用于所描写征象随时刻变革的环境。 时刻序列说明普及应用于计量经济学模子中,通过探求汗青数据中某一征象的成长纪律,对将来举办猜测。 时刻序列数据作为时刻序

为了利便各人调查,把这段时刻的日历附在下面,'2018-07-02'正好是礼拜一。

Pandas必备手艺之“时刻序列数据处理赏罚”

转换的思绪是这样的,以日历中的周举办聚合,如'20180702'-'20180708',取该周期内,日线开盘价的第一个值作为周开盘价,日线最高价的最大值作为周最高价,日线最低价的最小值作为周最低价,日线收盘价的最后一个值作为周最收盘价,日线最高价的最大值作为周最高价,日线成交量的求和作为周成交量(手),如下图黄色方框所示。

Pandas必备手艺之“时刻序列数据处理赏罚”

我们可以通过.resample()【4】要领实现上述操纵,对DataFrame和Series都合用。个中,参数rule配置必要转换成的频率,'1W'是一周。

详细转换的代码如下,日期默以为本周的礼拜日,假如周期内数据不全,如'20180722'这周只有3行数据,也会凭证上述要领举办转换。

  1. freq = '1W' 
  2. df_weekly = df[['open']].resample(rule=freq).first() 
  3. df_weekly['high'] = df['high'].resample(rule=freq).max() 
  4. df_weekly['low'] = df['low'].resample(rule=freq).min() 
  5. df_weekly['close'] = df['close'].resample(rule=freq).last() 
  6. df_weekly['vol'] = df['vol'].resample(rule=freq).sum() 
  7.  
  8. df_weekly 
  9.  
  10. Out[33]:  
  11.             open  high   low  close         vol 
  12. trade_date                                      
  13. 2018-07-08  9.05  9.05  8.45   8.66  5125563.53 
  14. 2018-07-15  8.69  9.03  8.58   8.88  4901983.84 
  15. 2018-07-22  8.85  8.90  8.66   8.70  1590354.68 

升采样:以周线数据转换日线数据为例。继承行使上面方才转换好的周线数据,我们再试着把它转换成日线数据。先通过.resample('D').asfreq()【5】要领,将周线数据的频率转换成日线,结果如下。

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

功效中呈现了许多空值,必要我们凭证必然的要领举办添补,可以通过添加.ffill()可能.bfill()实现。

(编辑:湖南网)

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

热点阅读