Tushare使用分享(二)

使用Tushare一段时间了,一句话,Tushare使用方便且数据质量很高,很值得推荐!ID:503757

了解Tushare
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化
 

今天给大家推荐一个使用python语言调取tushare接口获取数据的相关工具:PyCharm,以及通过调取tushare接口获取沪深股票基础数据存入本地MySQL。

1.PyCharm下载安装

PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试语法高亮项目管理、代码跳转、智能提示、自动完成单元测试版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

PyCharm的下载看这里,有详细的说明,直接看就好,这里就不多做说明:(27条消息) pycharm从安装到全副武装,学起来才嗖嗖的快,图片超多,因为过度详细!_川川菜鸟的博客-CSDN博客

2.通过Tushare读取沪深股票基础数据并存入MySQL

在下载完PyCharm工具后,点击新建项目、新建python文件,就可以在python文件里跑代码。

在跑代码前,需要下载两个需要用到的包:sqlalchemy和pymysql包

sqlalchemy

  • SQLAlchemy是Python中最有名的ORM工具。

  • 关于ORM:全称Object Relational Mapping(对象关系映射)。

ORM技术:Object-Relational Mapping,可以把关系数据库的表结构映射到对象上。

sqlalchemy包安装:

pip install sqlalchemy
  • 1
Requirement already satisfied: sqlalchemy in d:\anaconda3\lib\site-packages (1.3.18)

pymysql
PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个库。

pymysql包安装:

pip install pymysql
Collecting pymysql
  Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
Installing collected packages: pymysql
Successfully installed pymysql-1.0.2

OK,下载两个包后,就可以跑代码了

操作实例

导入包

import pandas as pd
import tushare as ts
from sqlalchemy import create_engine

如果按我在上篇中讲的安装完tushare SDK后,导入import tushare as ts就不会报错

从接口获取数据

# 获取数据,获取到的数据是dataframe的形式
ts.set_token('your token') #设置接口,从tushare中粘贴过来
pro = ts.pro_api()
df = pro.stock_basic()
df.head()

这边token接口在tushare官网,你的账号个人主页里

 

点击后面那个复制,就可以复制到代码里,点击小眼睛可以看清接口全部字母和数字。一般接口调用一次后面就不需要调用了,系统默认第一次调用的接口 

将数据储存进mysql中

 在这之前要在mysql中创建一个数据库,例如,我建立一个名为tushare_test的数据库。

# 把df存储到sql中
engine_ts = create_engine('mysql://' + username + ':'+ password + '@localhost/tushare_test')
username = 'root'
password = '自己设置的MySQL mima'
res = df.to_sql('stock_basic', engine_ts, index=False, if_exists='append', chunksize=5000)  #将dataframe用to_sql函数存储到数据库中
#参数依次为df储存到sql里面的表名、用户名和密码、不设置索引、如果存在此表就将其连接起来、每5000条分块
# 读取前20行数据    
sql = """SELECT * FROM stock_basic LIMIT 20"""#写sql语句
df = pd.read_sql_query(sql, engine_ts) #读取sql的查询结果并赋给df,参数分别为sql语句、用户名密码

最后还需要一个结构把所有框架构建起来;

全部代码如下:

import pandas as pd
import tushare as ts
from sqlalchemy import create_engine

engine_ts = create_engine('mysql://' + username + ':'+ password + '@localhost/tushare_test')

def read_data():
    sql = """SELECT * FROM stock_basic LIMIT 20"""#写sql语句
    df = pd.read_sql_query(sql, engine_ts)#读取sql的查询结果并赋给df,参数分别为sql语句、用户名密码
    return df


def write_data(df):
    res = df.to_sql('stock_basic', engine_ts, index=False, if_exists='append', chunksize=5000) #将dataframe用to_sql函数存储到数据库中
#参数依次为df储存到sql里面的表名、用户名和密码、不设置索引、如果存在此表就将其连接起来、每5000条分块
    print(res)


def get_data():
    pro = ts.pro_api('your 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",
    "is_hs",
    "delist_date",
    "list_status",
    "curr_type",
    "exchange",
    "cnspell",
    "enname",
    "fullname"
])
    return df


if __name__ == '__main__':
#     df = read_data()
    df = get_data()
    write_data(df)
    print(df)

运行完,本地MySQL里就有一个名为stock_basic的表格

 当然,这只是股票基础数据的股票列表导入了本地MySQL,还要将其他基础数据导入MySQL,操作也很简单,只需要在刚才代码的基础上稍加改变就可。

需要将下图画圆圈的表名替换成需要导入本地MySQL的数据表名:

 

另外还要把如下需要获取的数据参数改一下

 可以直接去tushare官网,点击数据工具,选择想要的数据,勾选参数后,点击生成代码

 

选中拉取数据部分,复制后去替换掉刚才圆圈圈出来的部分 ,之后再运行就可以导入其他一个表格到本地MySQL。这个比较方便的,但为了格式整齐,可以自己编写一些代码,来保证都是自己需要的,和保证格式更好看。

这次tushare使用分享就到这里了,关注我,下次还会继续分享tushare更多有用、方便的知识!

 


版权声明:本文为m0_58584303原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>