tushare股票列表mysql_量化交易的利器----tushare(九)数据存储

69.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进去】

70.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)

71.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()

72.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')

73.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')

74.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')))

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值