Tushare使用分享

        学习Tushare的初衷是为了完成我的本科毕业设计,从安装一步步学起,在这个过程中,几乎每一步都会遇到问题,通过各个平台查找资料才得以解决,也花费了不少时间。把这里作为记录我学习Tushare的过程,也为之后使用此数据库的小伙伴们提供一些经验。

 Tushare 官方网址Tushare大数据社区

目录

一、程序准备 

1. Tushare下载和安装

2. 下载IDE

3. 注册Tushare并获取token

二、数据获取

1.沪深300指数收盘价

2. 上证综指

3. Shibor

三、数据导出格式

1. excel格式

2. csv格式

四、错误汇总


一、程序准备 

1. Tushare下载和安装

我的系统是windows 10,在安装Tushare之前,要先配置好环境。

1. 下载Anaconda:Anaconda | Individual Edition

按照提示完成Anaconda的安装。

2. 快捷键Win+R,打开cmd后在终端键入

python

 3. 继续键入:

pip install tushare

等待后显示安装成功。

2. 下载IDE

下载Pycharm:PyCharm: the Python IDE for Professional Developers by JetBrains

此处可以查找pycharm的安装教程,不做详述。

3. 注册Tushare并获取token

1. 注册后打开个人主页——接口token——粘贴到剪贴板

2. 在IDE中新建python file,键入程序: 

import tushare as ts
#上一步复制的token粘贴到下方
token = "3ead77*******************************"
ts.set_token(token)
pro = ts.pro_api()

右键点击运行(如下图)

二、数据获取

1.沪深300指数收盘价

沪深300指数的是:hs300

指数可以使用指数接口index_daily和通用行情接口pro_bar等

1. 使用get_hist_data来获取

#沪深300 1B0300  旧版接口(不推荐)
df=ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')

2.  daily接口

pro = ts.pro_api()

df = pro.daily(ts_code='hs300', start_date='20180701', end_date='20180718')

#多个股票
df = pro.daily(ts_code='000001.SZ,600000.SH', start_date='20180701', end_date='20180718')

后来发现Tushare中hs300只能用旧版接口,且时段为2019.7月以后,新版接口不支持沪深300,遂改用上证综指。

2. 上证综指

df=ts.get_k_data(code='sh', ktype='D',start='2006-01-01', end='2021-01-01')
df.to_csv('d:/biyesheji/szzz.csv')

 获取上证综指的数据时,要特别注意上证的ts_code是sh,如果打000001获取的是平安银行的股票信息。

输入参数

名称类型必选描述
ts_codestrY指数代码
trade_datestrN交易日期 (日期格式:YYYYMMDD,下同)
start_datestrN开始日期
end_datestrN结束日期

输出参数

名称类型描述
ts_codestrTS指数代码
trade_datestr交易日
closefloat收盘点位
openfloat开盘点位
highfloat最高点位
lowfloat最低点位
pre_closefloat昨日收盘点
changefloat涨跌点
pct_chgfloat涨跌幅(%)
volfloat成交量(手)
amountfloat成交额(千元)

3. Shibor

#接口调用
pro = ts.pro_api()

df = pro.shibor(start_date='20180101', end_date='20181101')

输入参数

名称类型必选描述
datestrN日期 (日期输入格式:YYYYMMDD,下同)
start_datestrN开始日期
end_datestrN结束日期

输出参数

名称类型默认显示描述
datestrY日期
onfloatY隔夜
1wfloatY1周
2wfloatY2周
1mfloatY1个月
3mfloatY3个月
6mfloatY6个月
9mfloatY9个月
1yfloatY1年

三、数据导出格式

1. excel格式

方法如下:

import tushare as ts

df = ts.get_hist_data('000875')
#直接保存
df.to_excel('c:/day/000875.xlsx')

#设定数据位置(从第3行,第6列开始插入数据)
df.to_excel('c:/day/000875.xlsx', startrow=2,startcol=5)

常用参数说明:

  • excel_writer: 文件路径或者ExcelWriter对象
  • sheet_name:sheet名称,默认为Sheet1
  • sep : 文件内容分隔符,默认为,逗号
  • na_rep: 在遇到NaN值时保存为某字符,默认为’‘空字符
  • float_format: float类型的格式
  • columns: 需要保存的列,默认为None
  • header: 是否保存columns名,默认为True
  • index: 是否保存index,默认为True
  • encoding: 文件编码格式
  • startrow: 在数据的头部留出startrow行空行
  • startcol :在数据的左边留出startcol列空列

2. csv格式

这里我选择导出csv格式,方便python或MATLAB处理数据。

方法如下:

import tushare as ts

df = ts.get_hist_data('000875')
#直接保存
df.to_csv('c:/day/000875.csv')

#选择保存
df.to_csv('c:/day/000875.csv',columns=['open','high','low','close'])

#某些时候,可能需要将一些同类数据保存在一个大文件中,这时候就需要将数据追加在同一个文件里,简单举例如下:

import tushare as ts
import os

filename = 'c:/day/bigfile.csv'
for code in ['000875', '600848', '000981']:
    df = ts.get_hist_data(code)
    if os.path.exists(filename):
        df.to_csv(filename, mode='a', header=None)
    else:
        df.to_csv(filename)

四、错误汇总

1. Attribute Error: partially initialized module '  ' has no attribute '   ' (most likely due to a circular import)

命名.py文件的时候文件名与python内置的模块名称冲突,重新对文件命名就好了。

2. 导出数据文件后只有标题栏,内容为空白:

没有添加:

pro = ts.pro_api()

ts.set_token(token)

3.PermissionError: [Errno 13] Permission denied: 'd:/biyesheji/hs300.csv'

保存的目标文件被打开,关闭之后就可以了

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Retenue~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值