Tushare简单的数据使用以及mysql存储
本人tushare ID:430903
由于某些特殊的原因,接触到了股票策略量化的那么一个项目,而这需要大量数据的支持。而我第一时间尝试的是爬虫,存在mysql中,随时调用。这样有个问题,首先就是爬虫的代码质量不敢保证,日后需要经常维护,不太符合对量化的要求。
第二个尝试的便是tushare库。不用不知道,一用才发现这玩意是真好用。
首先我需要的便是的A股中所有股票的信息,这点从tushare库中很容易就能找到:
相关代码如下:
#coding=gbk
# 导入tushare
import tushare as ts
# 初始化pro接口
pro = ts.pro_api('插入你的token')
# 拉取数据
df = pro.stock_basic(**{
"ts_code": "",
"name": "",
"exchange": "",
"market": "",
"is_hs": "",
"list_status": "",
"limit": "",
"offset": ""
}, fields=[
"ts_code",
"symbol",
"name",
"area",
"industry",
"market",
"list_date"
])
print(df)
很轻松就可以获取所有上市股票的信息。
当然,获取完之后的存储更为关键。因为tushare存在频率限制,不能太高频率爬取信息。对于我这种一天一次的用户来说,虽然频率不是很大,但是为了和其他数据的统一,存取在MySQL库中更方便。
由于数据量不是很大,你存在MongoDB也行。什么数据库无所谓。
如何存入MySQL中
首先,你得把MySQL相关软件安装了。这方面网站上教程很多,我就不贴了。
接下来就是连接MySQL。对于我来说,pycharm中本来就存在可视化MySQL。
于是,我直接用pycharm中的数据库进行查看与处理,也很方便。问题来了:
对于我来说,我的数据还没有存放在云服务器中,放在本地,如果你和我一样,点击数据库中的新建按钮:
选择MySQL数据库
修改成你的MySQL中的主机和端口,填入密码,点击确认,本地的MySQL数据库就连接完成了。
如何往MySQL中存入tushare数据
导入如下库:
import pandas as pd
import pymysql
完成之后,你就可以往里面添加数据了
pandas库中自带有to_sql函数,这个函数可以很方便的往数据库中写入数据。
tushare中返回的大部分是dataframe数据结构,这种数据结构在爬虫以及大数据方面很常见,是必须要学习的库。
写入步骤:
首先创建一个架构,在空白处右键选择架构选项
接下来,写如下代码设置参数:
con1 = 'mysql+pymysql://你的用户名:你的密码@主机名:端口
/架构名字?charset=utf8'
)
例如:
con1 = 'mysql+pymysql://root:123456@localhost:3306/
stocks?charset=utf8'
完成之后,下面代码可以将一个dataframe写入到mysql中:
df.to_sql(name="stocksname",con=con1,if_exists='replace',index=False)
其中,name为表名,任意填写。
运行程序:
便发现多了一个表,是不是很方便呢
其中,包含了从tushare中获取的所有A股上市数据,以后再调用的时候,就可以不通过库调用,直接调用MySQL库,减轻网站负担。
如何从mysql库中读取信息
这个更简单了,只需要一行代码:
df1=pd.read_sql("select * from test1.stocksname",con=con1)
就可以完成:
总结
tushare库的功能十分强大,包括但不限于A股的所有可查询的数据,只是存在频率限制。
因此,我推荐大部分人都把数据存在mysql中,如果有频率限制的话,按照频率要求慢慢存在mysql中。这样子获得的A股数据因为都是由tushare中获取,十分整齐和规范,方便后续的加工。
本教程只是简单的提供了大致的使用方法和教程。如果需要更加详细的教程欢迎去tushare官网注册查询:
tushare官网