美文网首页玩转大数据大数据数据蛙数据分析每周作业
股票数据分析案例第三篇《tushare数据存储到mysql》

股票数据分析案例第三篇《tushare数据存储到mysql》

作者: 数据蛙datafrog | 来源:发表于2019-09-15 15:21 被阅读0次

    此系列文章是《数据蛙三个月就业班》股票数据分析案例的总结,整个案例包括linux、shell、python、hive、pycharm、git、html、css、flask、pyechart、sqoop等的使用,为了让就业班同学能够更好的学习,所以对上面大家有疑问的内容进行了总结。本篇是股票数据分析案例第三篇总结---tushare数据存储到mysql中
    阅读目录:

    • 使用tushare接口数据
    • 表结构设计
    • tushare数据存储到mysql中
    一:使用tushare接口数据

    1.第一步进行注册:tushare官网注册


    2.第二步保存好接口TOKEN

    对于接口token大家理解为是每位同学的唯一认证(接下来获取数据的时候会使用到)

    3.开始获取数据


    大家点击接口数据,能够看到左侧一列是我们能够获取到的数据。这里我们拿日线数据来作为测试

    tushare接口文档做的还真不错的呢,输入的参数都已经写好了。下面看看能够返回哪些结果来

    上面的文档我们也是一起看过了,接下来我们再看下如何来调取数据的。
    import tushare as ts #记得安装tushare包 pip install tushare
    ts.set_token('20a68962bea23bef4c46ec6ab20beda75d9d4a3863d5a3dfb')#设置token
    pro = ts.pro_api()
    df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718')
    print(df.head())
    

    输出结果为


    二:表结构设计

    上面我们知道如何去获得数据了,但是我们不能每次使用的时候,都去重新获得数据,因为tushare对每次的获取的数据量有一定的限制,所以我们考虑把每天更新的数据存储到数据库中,这样就可以方便我们来使用历史数据了。
    建表语句如下:

    drop table if exists stock_daily_basic;
    create table stock_daily_basic(
    ts_code  varchar(20) comment 'TS股票代码',
    trade_date date  comment '交易日期',
    close float comment '当日收盘价',
    turnover_rate float comment '换手率(%)',
    turnover_rate_f float comment '换手率(自由流通股)',
    volume_ratio float comment '量比',
    pe float comment '市盈率(总市值/净利润)',
    pe_ttm float comment '市盈率(TTM)',
    pb float    comment '市净率(总市值/净资产)',
    ps float    comment '市销率',
    ps_ttm float    comment '市销率(TTM)',
    total_share float comment '总股本 (万股)',
    float_share float comment '流通股本 (万股)',
    free_share float comment '自由流通股本 (万)  ',
    total_mv float comment '总市值 (万元)',
    circ_mv float    comment '流通市值(万元)',
    primary key (ts_code,trade_date) comment '股票和日期联合主键'
    ) COMMENT '全部股票每日重要的基本面指标';
    

    大家要留意下主键的设置,这里把股票和日期作为了联合主键,目的是保证每个股票每天只有一天记录,防止多插入数据(主键不可重复)

    三:tushare数据存储到mysql中

    关于python 和mysql结合使用,已经进行了总结,下面我们直接给出代码来让大家参考学习。

    import pandas as pd
    import pymysql
    pymysql.install_as_MySQLdb() #为了兼容mysqldb
    from sqlalchemy import create_engine
    conn=create_engine("mysql://{0}:{1}@{2}:{3}/{4}?charset=gbk".format(account,passw,ip,port,db))
    
    # 股票每日交易数据入库
    def daily_to_mysql():
        ts.set_token('20a68962bea23bef4c46ec6ab20beda75d9d4a3863d5a3dfb')#设置token
        pro = ts.pro_api()
        df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718')
        df.to_sql('stock_daily_basic',con=conn,if_exists='append',index=False)
            
    
    if __name__ == "__main__":
        daily_to_mysql()
    

    总结:上面我们主要探讨了如何tushare接口数据,设置表结构的注意点,以及数据的存储。这些东西看似简单,一旦动手很容易出错,大家尝试下看看怎么做到每个股票交易数据的定时更新呢?

    相关文章

      网友评论

        本文标题:股票数据分析案例第三篇《tushare数据存储到mysql》

        本文链接:https://www.haomeiwen.com/subject/mnnzyctx.html