Tushare拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据;同时获取简单,SDK开发包支持语言,同时提供HTTP Restful接口,最大程度方便不同人群的使用;并提供多种数据储存方式,如Oracle、MySQL,MongoDB、HDF5、CSV等,为数据获取提供了性能保证。#ID:480106
下面,就分享一下通过python获取A股数据的方法:
1.首先调用tushare包
import tushare as ts
pro = ts.pro_api('自己的接口')
2.在tushare获取股票基本信息并添加到result,包括ts_code symbol name area industry market list_date,result为前期整理好的股票代码csv文件。
df_basic = pro.stock_basic(exchange='', list_status='L')
result = pd.merge(left=result, right=df_basic, on='ts_code', how='outer')
3.结合tushare获取市值、财务数据
ts_df = result.ts_code.drop_duplicates()
ts_st_date = st_date.replace('-', '')
ts_ed_date = ed_date.replace('-', '')
trade_d = pro.trade_cal(exchange='SSE', is_open='1', start_date=ts_st_date, end_date=ts_ed_date, fields='cal_date') #标记开市交易日期
df_new = pd.DataFrame()
for date in trade_d['cal_date'].values:
df_daily_basic = pro.daily_basic(ts_code='', trade_date=date, fields='ts_code,'
' dv_ratio, dv_ttm, total_share, float_share,'
' free_share, total_mv, circ_mv ')
new = pd.DataFrame(ts_df)
new['date'] = date
new['date'] = pd.to_datetime(new['date'])
new = pd.merge(left=new, right=df_daily_basic, on='ts_code', how='outer')
df_new = pd.concat([df_new, new])
print(date + '基础数据:success') #判断是否成功
result = pd.merge(result, df_new, on=['ts_code', 'date'], how='outer')
4.将数据存为csv文件
result.to_csv(r"存储路径",index=True,header=True)