Tushare介绍和入门级实践(1)——使用tushare接口获取沪深300成分股交易日涨跌数据

这篇文章会介绍到的内容:

  • Python部分一些基础操作
  • Tushare中的部分function
  • 整合数据成我想要的数据样式

这篇文章难度为零,适合Python初学者。

tushare是国内现有的免费数据包中最好的股票/基金数据获取方式(让我们先一起膜拜一下米哥,感谢大佬让我们的工作轻松了许多)。这篇文章的主要目的是介绍tushare的基本使用方法。

我会结合自己摸索tushare使用方法时的经验和代码来介绍tushare的基本作用。本人的专业和技能偏数据分析方向,不是学习编程专业出身的专业人士,平时工作主要使用的软件是R,Python的编程水平有限,写的代码有些低效和冗长,请大家见谅。

我使用的IDE是Spyder(Anaconda自带),强烈建议直接安装Anaconda,因为集成的环境真的很不错!几乎所有你需要的包都已经集成了,比如pandas和numpy等等。(不过tushare还是需要自己安装的…安装教程大家自己搜一下吧,csdn上有很多,windows系统安装确实不太友好可能需要更改路径什么的)

让我们进入主题,利用tushare获取沪深300个股交易数据。
首先导入我们代码中会用到的package,需要注意的是,tushare是需要pandas和numpy的支持的,所以如果你的IDE里没有集成这两个包的话需要提前下载。

import pandas as pd
import numpy as np
import tushare as ts
import os
import datetime

修改python读取/写入文件的默认目录

print(os.getcwd())
os.chdir('C:/Users/ABC/Desktop/Data')
print(os.getcwd())

可以跑一下看看是不是设置成功了。

接下来是第一步,获取沪深300成分信息。tushare中有专门的接口达到这个目标:

a = ts.get_hs300s() 

a是一个dataframe,这是一个做数据分析最常用到的格式,想要修改/阅读这个格式的变量需要用到pandas这个包(我们前面已经加载过了)。
a包括的内容有:Tushare介绍和入门级实践(1)——使用tushare接口获取沪深300成分股交易日涨跌数据_第1张图片
这非常好,但是我还想要更多的数据,比如今天这个股票涨跌幅?属于什么行业?这个股票有没有停牌?如果停牌的话最后一个交易日是什么时候?这些数据都可以通过tushare直接或者间接地得到,但是需要多个functions结合使用。让我们一个一个地看应该怎么做:
下一步,通过tushare获取上述部分数据:

ccc = ts.get_stock_basics()
total = [] 

ccc包括的数据项非常多,我们只会用到其中一部分,剩余部分大家可以自己跑跑看看。
以下部分在我的代码里是以一个for循环的方式存在的,在文章里为了便于理解逻辑,我改成了一行一行的形式。

 temp = a.iloc[1]['code'] 	#获取股票代码
 name = a.iloc[1]['name'] 	#获取股票名称
 print(name,'Works!','Done',i+1,'stocks')	 #这行是提醒我代码运行到哪里了,因为数据需要临时抓取,速度比较慢,需要大概3分钟左右的时间。
 tempdata = ts.get_hist_data(temp) 	#交易数据
 late1day = tempdata.iloc[0]['close']    #从交易数据中获取上一个交易日的成交价
 late2day = tempdata.iloc[1]['close']	#上上个交易日的成交价
 ind = ccc.industry[ccc.index == temp] #获取这个股票所属行业
 ind = ind[0] #变换数据格式
ttt = datetime.date.today() #今天的时间
#if else组合判断这个股票现在是否在停牌中,同时整合现在离散的数据到一个统一的格式
if tempdata.index[0] == str(ttt) : 
	ret = (late1day - late2day) /late2day
    tempdata1 = [name,ret,tempdata.index[0],ind]
else:
    ret = 0
    tempdata1 = [name,ret,tempdata.index[0],ind]
total.append(tempdata1)		#让零散的数据添加到一个空的数据表中,可以统一查看。

整个流程就是这样了,成品大概是这样:
Tushare介绍和入门级实践(1)——使用tushare接口获取沪深300成分股交易日涨跌数据_第2张图片

今天就介绍到这里,以后有机会再给大家介绍这篇文章的进一步应用。
感谢大家看完这篇文章!希望对你们学习有一点点的帮助。

最后贴上tushare的官网,更多的数据接口和范例代码可以在官网上查到:
新版:https://tushare.pro/
旧版:http://tushare.org/index.html

Best,
Rider

你可能感兴趣的:(tushare,Python,入门级文章,金融数据)