• <ins id="c6lne"></ins>

      <i id="c6lne"><tr id="c6lne"><samp id="c6lne"></samp></tr></i>
      <bdo id="c6lne"><tr id="c6lne"></tr></bdo>
      <i id="c6lne"></i>
      <wbr id="c6lne"></wbr>

      Tushare Pro 新版發布,數據更穩定質量更好,歡迎注冊使用。

      ?

      數據存儲模塊主要是引導用戶將數據保存在本地磁盤或數據庫服務器上,便于后期的量化分析和回測使用,在以文件格式保存在電腦磁盤的方式上,調用的是pandas本身自帶的方法,此處會羅列常用的參數和說明,另外,也會通過實例,展示操作的方法。在存入DataBase方面,也提供了簡單的處理方式,本文將給出簡單的python代碼。

      • 保存為csv格式
      • 保存為Excel格式
      • 保存為HDF5文件格式
      • 保存為JSON格式
      • 存入MySQL等關系型數據庫
      • 存入NoSQL數據庫

      CSV文件?

      pandas的DataFrame和Series對象提供了直接保存csv文件格式的方法,通過參數設定,輕松將數據內容保存在本地磁盤。

      常用參數說明:

      • path_or_buf: csv文件存放路徑或者StringIO對象
      • sep : 文件內容分隔符,默認為,逗號
      • na_rep: 在遇到NaN值時保存為某字符,默認為’‘空字符
      • float_format: float類型的格式
      • columns: 需要保存的列,默認為None
      • header: 是否保存columns名,默認為True
      • index: 是否保存index,默認為True
      • mode : 創建新文件還是追加到現有文件,默認為新建
      • encoding: 文件編碼格式
      • date_format: 日期格式

      注:在設定path時,如果目錄不存在,程序會提示IOError,請先確保目錄已經存在于磁盤中。

      調用方法:

      import tushare as ts
      
      df = ts.get_hist_data('000875')
      #直接保存
      df.to_csv('c:/day/000875.csv')
      
      #選擇保存
      df.to_csv('c:/day/000875.csv',columns=['open','high','low','close'])
      

      追加數據的方式:

      某些時候,可能需要將一些同類數據保存在一個大文件中,這時候就需要將數據追加在同一個文件里,簡單舉例如下:

      import tushare as ts
      import os
      
      filename = 'c:/day/bigfile.csv'
      for code in ['000875', '600848', '000981']:
          df = ts.get_hist_data(code)
          if os.path.exists(filename):
              df.to_csv(filename, mode='a', header=None)
          else:
              df.to_csv(filename)
      

      【注:如果是不考慮header,直接df.to_csv(filename, mode=’a’)即可,否則,每次循環都會把columns名稱也append進去】

      Excel文件?

      pandas將數據保存為MicroSoft Excel文件格式。

      常用參數說明:

      • excel_writer: 文件路徑或者ExcelWriter對象
      • sheet_name:sheet名稱,默認為Sheet1
      • sep : 文件內容分隔符,默認為,逗號
      • na_rep: 在遇到NaN值時保存為某字符,默認為’‘空字符
      • float_format: float類型的格式
      • columns: 需要保存的列,默認為None
      • header: 是否保存columns名,默認為True
      • index: 是否保存index,默認為True
      • encoding: 文件編碼格式
      • startrow: 在數據的頭部留出startrow行空行
      • startcol :在數據的左邊留出startcol列空列

      調用方法:

      import tushare as ts
      
      df = ts.get_hist_data('000875')
      #直接保存
      df.to_excel('c:/day/000875.xlsx')
      
      #設定數據位置(從第3行,第6列開始插入數據)
      df.to_excel('c:/day/000875.xlsx', startrow=2,startcol=5)
      

      HDF5文件?

      pandas利用PyTables包將數據保存為HDF5格式的文件。需要確認的是,運行時PyTables包的版本需要 >=3.0.0。

      常用參數說明:

      • path_or_buf: 文件路徑或者HDFStore對象
      • key:HDF5中的group標識
      • mode : 包括 {‘a’追加, ‘w’寫入, ‘r’只讀, ‘r+’等同于a但文件必須已經存在}, 默認是 ‘a’
      • format:‘fixed(f)|table(t)’,默認‘fixed’,f適合快速讀寫,不能追加數據 t適合從文件中查找和選擇數據
      • append: 適用于table(t)模式追加數據,默認Flase
      • complevel: 壓縮級別1-9, 默認0
      • complib: 壓縮類型{‘zlib’, ‘bzip2’, ‘lzo’, ‘blosc’, None}默認None

      調用方法:

      import tushare as ts
      
      df = ts.get_hist_data('000875')
      df.to_hdf('c:/day/hdf.h5','000875')
      

      方法2:

      import tushare as ts
      
      df = ts.get_hist_data('000875')
      store = HDFStore('c:/day/store.h5')
      store['000875'] = df
      store.close()
      

      JSON文件?

      pandas生成Json格式的文件或字符串。

      常用參數說明:

      • path_or_buf: json文件存放路徑
      • orient:json格式順序,包括columns,records,index,split,values,默認為columns
      • force_ascii: 將字符轉ASCII,默認為True

      調用方法:

      import tushare as ts
      
      df = ts.get_hist_data('000875')
      df.to_json('c:/day/000875.json',orient='records')
      
      #或者直接使用
      print df.to_json(orient='records')
      

      MySQL數據庫?

      pandas提供了將數據便捷存入關系型數據庫的方法,在新版的pandas中,主要是已sqlalchemy方式與數據建立連接,支持MySQL、Postgresql、Oracle、MS SQLServer、SQLite等主流數據庫。本例以MySQL數據庫為代表,展示將獲取到的股票數據存入數據庫的方法,其他類型數據庫請參考sqlalchemy官網文檔的create_engine部分。

      常用參數說明:

      • name:表名,pandas會自動創建表結構
      • con:數據庫連接,最好是用sqlalchemy創建engine的方式來替代con
      • flavor:數據庫類型 {‘sqlite’, ‘mysql’}, 默認‘sqlite’,如果是engine此項可忽略
      • schema:指定數據庫的schema,默認即可
      • if_exists:如果表名已存在的處理方式 {‘fail’, ‘replace’, ‘append’},默認‘fail’
      • index:將pandas的Index作為一列存入數據庫,默認是True
      • index_label:Index的列名
      • chunksize:分批存入數據庫,默認是None,即一次性全部寫人數據庫
      • dtype:設定columns在數據庫里的數據類型,默認是None

      調用方法:

      from sqlalchemy import create_engine
      import tushare as ts
      
      df = ts.get_tick_data('600848', date='2014-12-22')
      engine = create_engine('mysql://user:passwd@127.0.0.1/db_name?charset=utf8')
      
      #存入數據庫
      df.to_sql('tick_data',engine)
      
      #追加數據到現有表
      #df.to_sql('tick_data',engine,if_exists='append')
      

      MongoDB?

      pandas目前沒有提供直接存入MongoDB的方法,不過依然很簡單,而且方式很多,用戶可根據自身的業務特點選擇存儲的結構方式。

      使用方法:

      import pymongo
      import json
      
      conn = pymongo.Connection('127.0.0.1', port=27017)
      df = ts.get_tick_data('600848',date='2014-12-22')
      
      conn.db.tickdata.insert(json.loads(df.to_json(orient='records')))
      
      日本加勒比无码中文字幕视频在线观看,国产超碰人人做人人爱,久久伊人AV超碰,人人艹人人爱人人摸,人人超碰碰久久 日本加勒比无码中文字幕视频在线观看,国产超碰人人做人人爱,久久伊人AV超碰,人人艹人人爱人人摸,人人超碰碰久久 大芭蕉天天视频在线观看,嫩草影院免费地址,午夜不卡av免费,在线看免费观看日本AV动态,亚洲人AV高清无码,丁香五月开心婷婷综合 亚洲国产在线精品国自产拍影院,免费网站看v片在线无遮挡,免费观看四虎精品国产,自拍偷区亚洲综合美利坚,无码毛片视频一区二区本码 久久人人97超碰人人爱,久久香蕉网视频,天天影视久久综合综,欧美秋霞理论在一级A片,国产的免费拍福利短视频,人妻21p 福利片国产 久久精品人人槡人妻人人玩,99热国产这里只有精品无卡顿,yy6080午夜理论大片一级,久久国产精品日本波多野结衣,熟妇女的欲乱在线观看 亚洲国产在线精品国自产拍影院,免费网站看v片在线无遮挡,免费观看四虎精品国产,自拍偷区亚洲综合美利坚,无码毛片视频一区二区本码
      亚洲色欲色欱WWW在线,乱中年女人伦中文字幕,亚洲国产精品高清在线,中文字幕日本中文无码,国产学生情侣久久AV,中文字幕 人妻熟女 A级毛片高清免费视频就,中国熟妇乱子伦视频在线观看,亚洲特色特黄,欧美老妇人极度另另类,啦啦啦免费视频播放在线观看 99热爱久久99热爱九九热爱,国产免费破外女真实出血视频,亚洲毛片不卡AV在线播放一区,国产高清综合乱色视频,18禁止观看强奷视频A级毛片 AV第一福利网站,日韩欧美成人免费观看,亚洲夜夜性无码,日韩人妻无码精品一专区,国产三级韩国三级日产三级,春色校园激情综合在线 99热爱久久99热爱九九热爱,国产免费破外女真实出血视频,亚洲毛片不卡AV在线播放一区,国产高清综合乱色视频,18禁止观看强奷视频A级毛片 爆乳喷奶水无码正在播放,久久久综合九色综合88,国产在线精选免费视频,国产亚洲精品福利视频,亚洲国产中文字幕在线视频 普通话刺激对白国语高,中文字幕无线在线视频,超清中文乱码一区,偷偷要色偷偷中文无码,久久99国产综合精品女同,精品国产av一二三四区 在线观看国产高清免费不卡,色天天综合网视频网站,色天天综合色天天,色偷偷亚洲男人的天堂,第一色网站,99热久久是有精品首页6国产 人人澡人摸人人添学生AV,人妻少妇中文字幕久久,老熟女色情AV视频,日本亚洲精品无码专区,国产精品免费视频色拍拍,天天射天天日香蕉 免费高清v片在线观看,免费网站看完整v片在线,日本高清视频在线网站,2019中文字幕视频,2019中文字幕视频在线