Tushare股票基本信息获取

新人入门,代码各种low,如果有幸被大神刷到,望留下高贵意见,不吝赐教!QQ:1712631617

问题1:如何对已存在的数据进行更新?

问题2:如何置换数据列先后顺序?

1、数据库创建

CREATE TABLE
IF
    NOT EXISTS stock_info (
        ts_code VARCHAR(12) COMMENT 'ts代码',
        stk_code VARCHAR(6) COMMENT '股票代码',
        stk_name VARCHAR(12) COMMENT '股票名称',
        industry VARCHAR(24) COMMENT '所属行业',
        market VARCHAR(12) COMMENT '股票市场类型【主板/中小板/创业板/科创板】',
        exchange VARCHAR(12) COMMENT '交易所',
        list_date date COMMENT '上市日期',
        province VARCHAR(6) COMMENT '省份',
        city VARCHAR(12) COMMENT '城市',
        employees INT(8) COMMENT '员工人数',
        main_business VARCHAR(1500) COMMENT '主营业务及产品',
        PRIMARY KEY ( ts_code ),
    UNIQUE INDEX ( ts_code ) 
    ) ENGINE = INNODB CHARSET = utf8mb4;

2、Tushare调用

def get_security_info():
    '''
    调用stock_basic接口,获取股票基本信息,字段包含:ts代码、股票代码、股票名称、行业、股票市场类型、交易所类型、上市日期
    调用stock_company接口,获取公司基本信息,字段包含:ts代码、省份、城市、员工人数、主要业务及产品,SSE上交所 SZSE深交所 ,默认SSE
    表格合并
    '''
    cursor = conn.cursor()
    # 执行删除数据命令
    cursor.execute('delete from Quantized_data.stock_info')
    conn.commit()

    print("开始获取Tushare股票基本信息!")
    stock_list = pro.stock_basic(list_status='L', fields='ts_code,symbol,name,industry,market,exchange,list_date')

    company_list1 = pro.stock_company(exchange='SSE', fields='ts_code,province,city,employees,main_business')
    company_list2 = pro.stock_company(exchange='SZSE', fields='ts_code,province,city,employees,main_business')
    company_list = pd.concat([company_list1,company_list2],axis=0)

    stock_info = pd.merge(stock_list,company_list,how='left')
    stock_info.columns=['ts_code', 'stk_code', 'stk_name', 'industry', 'market', 'exchange', 'list_date','province','city','employees','main_business']
    stock_info.drop_duplicates()
    stock_info.to_sql('stock_info',engine,if_exists='append', index=False,chunksize=10)
    print("Tushare股票基本信息获取完成!")

if __name__ == "__main__":
    ts.set_token('ac16b470869c5d82db5033ae9288f77b282d2b5519507d6d2c72fdd7')
    pro = ts.pro_api()
    conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password='123456', database='Quantized_data',charset="utf8mb4")
    engine = create_engine('mysql://root:[email protected]/Quantized_data?charset=utf8mb4')

    get_security_info()

猜你喜欢

转载自www.cnblogs.com/Iceredtea/p/11755518.html
今日推荐