新人入门,代码各种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()