1. <s id="w2s0l"></s>

            1. <object id="w2s0l"></object>

                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')))
                
                2021国产成人不卡视频-亚洲天堂中字无码原创-VA天堂ⅤA在线VA无码-视频人妻日韩视频一区二区-中文字幕久精品视频在线观看-俄罗斯女人大P毛茸茸 2021国内精品久久久久精品-人妻三级日本香港三级极97-日本AV不卡在线播放-777米奇影院奇米网狠狠-超级黑人巨黑吊SV中国女人-亚洲a∨国产av在线播放一区 久热中文字幕无码视频-亚洲视频-香港三级韩国三级日级国产-中文字幕精品无码一区二区三区-人妻AV无码专区-日韩亚洲精品久久无码-天天爽夜夜爽人人爽 中文字幕卡通动漫第1页在线-日日啪无需播放器-香港经典三级影片-国产成人亚洲综合-高清欧美AV片-欧美国产日韩a欧美在线视频-国产av综合影院-最新高清无码专区 亚洲色爽视频在线观看-韩国三级-免费AV在线看不卡-日本毛多水多免费视频-国产亚洲综合久久系列-三级黄艳床上免费视频-婷婷五月综合丁香在线-久久人人97超碰香蕉 色吊丝最新永久免费观看网址-国产午夜亚洲精品一区-日本不卡免费一区二区-超级乱婬片国语对白-一本色道久久88一综合-免费A级毛片无码樱桃视频 2021最新国产不卡aV-成人三级视频在线观看不卡-國產亂倫在線看-无码熟妇人妻AV在线影片-亚洲AV无码乱码在线观看-久9视频这里只有精品试看-精品一区二区三区 yellow视频在线观看-欧洲熟妇性色黄在线观看免费-色吊丝av中文字幕-香港三日本香港三级人妇-少妇愉情理伦片-一本之道高清在线-亚洲成A人片在线观看无码 大香蕉免费视频在线播放2021-亚洲国产另类久久久精品-国产一级A片无码免费-日本熟妇大乳-亚洲美国产亚洲AV-免费观A在线观看视频网站-日日噜噜夜夜狠狠视频无码
                日韩精品第52页-日本三级韩国三级欧美三级-一级A片色试看120秒-欧美人与动性xxx-人妻 偷拍 无码 中文字幕-亚洲色AV性色在线观看-少妇的丰满2中文字幕 国产国产人免费人成免费视频-日本三级香港三级人妇电影99-人妻熟女精品视频专区-色综合久久无码中文字幕-人妻丰满熟妇AV无码区影片资源-欧美av色爱综合网欧美av 2021国内久久久久精品视频在线播放-在线观看国产高清免费不卡-日本韩国三级aⅴ在线观看-国产乱理伦片在线观看-无码中文字幕乱码一区-中文无码福利视频岛国片 免费视频在线观看网址-国模男女大尺度炮交150P-香港经典a毛片免费观看特级-成人免费a级毛片-日本无码A级毛片免费视频-AV天堂中文字幕-久久99久久99久久综合 国产露脸手机在线观看-中国最大成网人站亚洲-韩国伦理电影在线云播放-观看片免费人成视频-日本熟妇hdsex视频-无码日韩免费看A片-亚洲丰满爆乳熟女在线播放 免费视频在线观看网址-国模男女大尺度炮交150P-香港经典a毛片免费观看特级-成人免费a级毛片-日本无码A级毛片免费视频-AV天堂中文字幕-久久99久久99久久综合 成年视频XXXXX在线-三级片网站-狠狠五月深爱婷婷网-日本AV少妇无码专区-手机在线观看免费AV网址-中日AV高清字幕版在线观看-少妇爆乳无码专区-小电影视频在线 性无码专区-制服一区二区亚洲-日本三级香港三级人妇电影-日本无码精品一二三四区视频-国产精品国产三级国产专区-黄色高清三级带-AV在线视频成人社区 欧美劲爆色情AV播放-国自产拍精品AV-NANA高清在线观看-制服丝袜AV无码专区-岛国动作片AV在线网站-yy6688亚洲网站-日本无码av不卡一区二区三区