tushare是一个免费,开源的python财经数据接口包.主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Pythonpandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandasDataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以将数据全部保存到本地后进行分析。
Tushare拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。同时,SDK开发包支持语言,同时提供HTTP Restful接口,最大程度方便不同人群的使用。并且提供多种数据储存方式,如Oracle、MySQL,MongoDB、HDF5、CSV等,为数据获取提供了性能保证。
Tushare官网:Tushare大数据社区
1. 安装:
pip install tushare
版本升级 :
pip install tushare --upgrade
查看当前版本的方法:
import tushare print(tushare.version)
聚宽研究环境已经集成了tushare
# 查看当前版本
import tushare
print(tushare.__version__)
2. 然后去Tushare官网注册¶
获取token:
1、登录成功后,点击右上角->个人主页
2、 在“用户中心”中点击“接口TOKEN”
3、 可以点击右侧复制按钮复制token
4、或者点击右侧睁开眼睛来获取token明文,复制并保存
1.导入各种库(pandas、tushare、matplotlib库等)
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
import os
import tushare as ts
# 设置 tushare 的 token
ts.set_token('3bbe7964d6b047f09e9f622ded0cabf05bf2b187d25609e1d1fabb94')
# ts.set_token('your token')
# 初始化 tushare 的 pro 接口
pro = ts.pro_api()
# pandas 输出显示设置
pd.set_option('expand_frame_repr', False) # True就是可以换行显示。设置成False的时候不允许换行
pd.set_option('display.max_columns', None) # 显示所有列
pd.set_option('display.max_rows', None) # 显示所有行
pd.set_option('colheader_justify', 'centre') # 显示居中
# matplotlib 中文设置
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
2.设置导入数据格式、日期等,股票数据为前复权
def get_data(code,start,end):
df=pro.daily(ts_code=code, start_date=start, end_date=end, autype='qfq')
df.index = pd.to_datetime(df.trade_date)
print(df.head())
return df
3.下载股票数据,且用csv保存,保存至指定位置
def acquire_code(): #只下载一只股票数据,且只用CSV保存 未来可以有自己的数据库
inp_code =input("请输入股票代码:\n")
inp_start = input("请输入开始时间:'\n'")
inp_end = input("请输入结束时间:'\n'")
df = get_data(inp_code,inp_start,inp_end)
# 输出统计各列的数据量
print(df.info())
# 分割线
print("—"*30)
# 输出常用统计参数
print(df.describe())
# 把股票数据按照时间正序排列
df.sort_index(inplace=True)
path = os.path.join(os.path.join(os.getcwd(),
"datas"), inp_code + ".csv")
df.to_csv(path)
请输入股票代码:
输入:002624.SZ
请输入开始时间:
输入:20230101
请输入结束时间:
输入:20230317
acquire_code()
5.到指定文件夹位置查看获取的数据
6.用python查看获取的数据
def readcsv(code):
path = os.path.join(os.path.join(os.getcwd(),
"datas"), code + ".csv")
df = pd.read_csv(path)
return df
df = readcsv('002624.SZ')
print(df.head())
df.tail()