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

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

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

时刻序列数据Time Series Data是在差异时刻上网络到的数据,这类数据是定时刻次序网络到的,用于所描写征象随时刻变革的环境。

时刻序列说明普及应用于计量经济学模子中,通过探求汗青数据中某一征象的成长纪律,对将来举办猜测。

时刻序列数据作为时刻序列说明的基本,学会怎样对它举办奇妙地处理赏罚长短常须要的,Python中的Pandas库为我们提供了强盛的时刻序列数据处理赏罚的要领,本文会先容个中常用的几个。

【器材】

  • Python 3
  • Tushare

01、时刻名目转换

偶然辰,我们得到的原始数据并不是凭证时刻范例索引举办分列的,必要先举办时刻名目标转换,为后续的操纵和说明做筹备。

这里先容两种要领。第一种要领是用pandas.read_csv导入文件的时辰,通过配置参数parse_dates和index_col,直接对日期罗列办转换,并将其配置为索引。关于参数的具体表明,请查察文档【1】。

如下示例中,在没有配置参数之前,可以调查到数据齐集的索引是数字0-208,'date'列的数据范例也不是日期。

  1. In [8]: data = pd.read_csv('unemployment.csv') 
  2. In [9]: data.info() 
  3. <class 'pandas.core.frame.DataFrame'> 
  4. RangeIndex: 209 entries, 0 to 208 
  5. Data columns (total 2 columns): 
  6. date      209 non-null object 
  7. UNRATE    209 non-null float64 
  8. dtypes: float64(1), object(1) 
  9. memory usage: 3.3+ KB 

配置参数parse_dates = ['date'] ,将数据范例转换成日期,再配置 index_col = 'date',将这一列用作索引,功效如下。

  1. In [11]: data = pd.read_csv('unemployment.csv', parse_dates=['date'], index_col='date') 
  2.  
  3. In [12]: data.info() 
  4. <class 'pandas.core.frame.DataFrame'> 
  5. DatetimeIndex: 209 entries, 2000-01-01 to 2017-05-01 
  6. Data columns (total 1 columns): 
  7. UNRATE    209 non-null float64 
  8. dtypes: float64(1) 
  9. memory usage: 13.3 KB 

这时,索引酿成了日期'20000101'-'2017-05-01',数据范例是datetime。

第二种要领是在已经导入数据的环境下,用pd.to_datetime()【2】将列转换成日期范例,再用 df.set_index()【3】将其配置为索引,完成转换。

以tushare.pro上面的日线行情数据为例,我们把'trade_date'列转换成日期范例,并配置成索引。

  1. import tushare as ts 
  2. import pandas as pd 
  3.  
  4. pd.set_option('expand_frame_repr', False)  # 列太多时不换行 
  5. pro = ts.pro_api() 
  6.  
  7. df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718') 
  8.  
  9. df.info() 
  10.  
  11. <class 'pandas.core.frame.DataFrame'> 
  12. RangeIndex: 13 entries, 0 to 12 
  13. Data columns (total 11 columns): 
  14. ts_code       13 non-null object 
  15. trade_date    13 non-null object 
  16. open          13 non-null float64 
  17. high          13 non-null float64 
  18. low           13 non-null float64 
  19. close         13 non-null float64 
  20. pre_close     13 non-null float64 
  21. change        13 non-null float64 
  22. pct_chg       13 non-null float64 
  23. vol           13 non-null float64 
  24. amount        13 non-null float64 
  25. dtypes: float64(9), object(2) 
  26. memory usage: 1.2+ KB 
  27. None 
  28.  
  29.  
  30. df['trade_date'] = pd.to_datetime(df['trade_date']) 
  31. df.set_index('trade_date', inplace=True) 
  32. df.sort_values('trade_date', ascending=True, inplace=True)  # 升序分列 
  33.  
  34. df.info() 
  35.  
  36. <class 'pandas.core.frame.DataFrame'> 
  37. DatetimeIndex: 13 entries, 2018-07-02 to 2018-07-18 
  38. Data columns (total 10 columns): 
  39. ts_code      13 non-null object 
  40. open         13 non-null float64 
  41. high         13 non-null float64 
  42. low          13 non-null float64 
  43. close        13 non-null float64 
  44. pre_close    13 non-null float64 
  45. change       13 non-null float64 
  46. pct_chg      13 non-null float64 
  47. vol          13 non-null float64 
  48. amount       13 non-null float64 
  49. dtypes: float64(9), object(1) 
  50. memory usage: 1.1+ KB 

(编辑:湖南网)

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

热点阅读