第一步:导入包
import pandas as pd
import tushare as ts
from sqlalchemy import create_engine
第二步:初始化
初始化数据库,替换【】内的内容
engine_ts = create_engine('mysql://【数据库用户名(比如root)】:【数据库密码(比如123456)】@【数据库IP地址】:3306/【数据库名字】?charset=utf8&use_unicode=1')
例子:
engine_ts = create_engine('mysql://root:123456@192.168.1.1:3306/gupiao?charset=utf8&use_unicode=1')
初始化tushare
注册Tushare获取TOKEN凭证
设置token
ts.set_token('your token here')
以上方法只需要在第一次或者token失效后调用,完成调取tushare数据凭证的
设置,正常情况下不需要重复设置。也可以忽略此步骤,直接用pro_api('your
token')完成初始化
初始化pro接口
pro = ts.pro_api()
如果上一步骤ts.set_token('your token')无效或不想保存token到本地,也可以
在初始化接口里直接设置token:
pro = ts.pro_api('your token')
pro = ts.pro_api()
第三步:从tushare获取数据
指数每日行情
df = pro.index_daily(ts_code='399300.SZ')
或者按日期取
df = pro.index_daily(ts_code='399300.SZ', start_date='20180101', end_date='20181010')
上证指数000001.sh
上证50指数000016.sh
深圳成指399001.sz
创业板指数399006.sz
沪深300指数000300.sz
股票每日行情
df = pro.daily(trade_date=‘20200615) #日线,每天所有股票信息,没有复权的数据,就是显示的实际值
或者
前复权的每日数据adj='qfq'设置
df = ts.pro_bar(ts_code='000001.SZ', adj='qfq', start_date='20180101', end_date='20181011')
场内基金日线行情
df = pro.fund_daily(ts_code='基金代码【150018.SZ】', start_date='20180101', end_date='20181029')
第四步:数据库读写
从数据库读取数据
sql = """SELECT * FROM 表 LIMIT 20""" #数据库查询语句
df = pd.read_sql_query(sql, engine_ts) #执行查询
写数据
res = df.to_sql('sz50index_daily', engine_ts, index=False,
if_exists='append', chunksize=5000) #把df里面的数据写到数据库