600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Python获取股票数据及其可视化--基于tushare库

Python获取股票数据及其可视化--基于tushare库

时间:2023-05-07 07:42:17

相关推荐

Python获取股票数据及其可视化--基于tushare库

01 Tushare简介

Tushare是一个金融大数据开放社区,它免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资。在Tushare 旧版 运行了3年后,Tushare Pro终于要跟大家见面了。Pro版数据更稳定质量更好了,但Pro依然是个开放的,免费的平台,不带任何商业性质和目的。Tushare运行三年多以来,数据从广度和深度都得到了提升,Pro版正是在此基础上做了更大的改进。数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。

新版本(Tushare Pro)需要注册获取token才能免费使用,注册网址: Tushare注册。安装(Win+R进入cmd模式):pip install tushare,或升级:pip install tushare --upgrade。下面以股票行情数据为例,展示下tushare如何获取数据。

02 获取token

如何获取TOKEN凭证

1、登录成功后,点击右上角->个人主页

2、 在“用户中心”中点击“接口TOKEN”

3、 可以点击右侧复制按钮复制token

4、或者点击右侧睁开眼睛来获取token明文,复制并保存

注意:token是调取数据的唯一凭证,请妥善保管,如发现别人盗用,可在本页面点击“刷新”操作,之前的token将失效。

03 获取数据并进行可视化及保存数据操作

1. 导入相关库

# 导入相关库import tushare as tsimport pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 可以在画图时正常显示出现的中文和负号from pylab import mplmpl.rcParams['font.sans-serif'] = ['SimHei']mpl.rcParams['axes.unicode_minus'] = False

2. 获取个股行情数据

上面两个图都是获取各类型数据的接口及参数,如果有些数据你获取不了,说明你积分不够,这是你就需要增加你的积分,具体如何看社区网站有详细的流程。

# 设置tokentoken = '你刚才复制的token'pro = ts.pro_api(token)# 获取当前上市的股票代码、简称、注册地、行业、上市时间等数据data = pro.stock_basic(exchange='', list_status='L', fields='ts_code, symbol, name, area, industry, list_date')# 查看前五行数据print(data.head(5))# 获取万科日行情数据并查看前五条数据信息wk = pro.daily(ts_code='000002.SZ', start_date='0101',end_date='')print(wk.head())

3. 获取指数基金数据并进行可视化

# 指数数据:pro.index_daily()def get_index_data(indexs):'''indexs是字典格式'''index_data = {}for name, code in indexs.items():df = pro.index_daily(ts_code=code)df.index = pd.to_datetime(df.trade_date)index_data[name] = df.sort_index()return index_data# 获取常见股票指数行情indexs = {'上证综指': '000001.SH', '深证成指': '399001.SZ','沪深300': '000300.SH', '创业板指': '399006.SZ','上证50': '000016.SH', '中证500': '000905.SH','中小板指': '399005.SZ', '上证180': '000010.SH'}index_data = get_index_data(indexs)print(index_data['上证综指'].head())# 对股价走势进行可视化分析subjects = list(index_data.keys())# 每个子图的titleplot_pos = [421, 422, 423, 424, 425, 426, 427, 428] # 每个子图的位置new_colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728','#9467bd', '#8c564b', '#e377c2', '#7f7f7f']fig = plt.figure(figsize=(25, 25))fig.suptitle('A股股指走势', fontsize=18)for pos in np.arange(len(plot_pos)):ax = fig.add_subplot(plot_pos[pos])y_data = index_data[subjects[pos]]['close']b = ax.plot(y_data, color=new_colors[pos])ax.set_title(subjects[pos])# 将右上边的两条边颜色设置为空,相当于抹掉这两条边ax = plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')plt.savefig('A股重要指数基金.png')plt.show()

可视化图如下:

4. 获取多只股票信息并保存到CSV文件中

# 定义获取多只股票函数:def get_stocks_data(stocklist, start, end):all_data = {}for code in stocklist:all_data[code] = pro.daily(ts_code=code, start_date=start, end_date=end)return all_datadata = pro.stock_basic(exchange='', list_status='L', fields='ts_code')stocklist = list(data['ts_code'][:20]) # 取前20只股票print(stocklist)start = '0101' # 开始时间end = '2001' # 截至时间all_data = get_stocks_data(stocklist, start, end)print(all_data)print(all_data['000002.SZ'].tail())# 保存本地def save_data(all_data):for code, data in all_data.items():data.to_csv('C:/Users/86188/Desktop/研究生学习/股票数据/'+code+'.csv', header=True, index=False)# 将数据保存到本地save_data(all_data)

查看文件结果如下:

04 写在最后

还有很多数据的获取及其参数解释都在Tushare社区网站,你注册后就可以看到。谢谢你的观看,喜欢就给个赞吧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。