通过Tushare库获取历史数据

本文介绍了Tushare库,一个开源的Python财经数据库,用于金融数据采集和分析。重点讲解了如何安装Tushare,设置TOKEN,以及通过TusharePro获取股票历史行情数据的过程,包括日线、周线和月线数据的获取方法。
摘要由CSDN通过智能技术生成

Tushare 库是一个免费、开源的 Python 财经数据库,它主要实现对股票等金融数据从数据采集、消洗加工到数据存储的过程,能够内金融量化分析人员提供快速、整洁和多样的便于分析的数据,所以接下来介绍如何用 Tusbare 库获取金融历史数据。本文介绍的只是 Tushare 库的一些常用功能,更多内容可以参考新版 Tushare 的官方文档。

Tushare 库的介绍与安装

Tushare 库从发布到现在,得到了广大用户的支持,并且 Tushare 作为一个开源的项目一直在保持更新,所以对于需要对金融数据进行分析的人来说,Tushare 是一个非常合适的历史数据获取的工具。另外,Tushare 返回的绝大部分数据都是 Pandas 中的 DataFrame 格式,所以便于我们进一步结合 Pandas、NumPy、Matplotlib 库等进行进一步的数据分析和可视化操作。

因为 Tushare 库用到了 Pandas 库和 Ixml 库,所以在安装之前,需要确保 Pandas 库和Ixml 库己经安装。Tushare 的安装与其他库的安装方式一样,同样可以在 Anaconda Prompt 中通过 pip进行安装。

pip install tushare

安装完成之后导入 Tushare 库,通常我们习惯于以 ts 作为 Tushare 库的别名。

import tushare as ts

因为 Tushare 库的旧版本中的一些接口,如历史行情数据的获取等不再进行维护,所以接下来的内容将以 Tushare 的新版本 Tushare Pro 为例进行介绍。相比于旧版本 Tushare,Tushare Pro 的数据更穏定,质量也更好。

在使用 Tushare Pro 之前,需要先去 Tushare 官网进行注册,获取TOKEN。

Tushare数据

在确保Tushare库已经安装成功并且获取 Token 之后,下面介绍如何用Tushare 库获取股票历史行情数据。代码如下,首先导入 Tushare 库,然后设置前面获取的 Token,最后调用初始化接口。

import tushare as ts 
#设置 Token 
ts.set token('your token') 
# 初始化接口 
ts_pro = ts.pro_api()

经过初始化之后,就可以通过 Tushare 提供的方法来获取历史数据了。我们可以调用其中的daily()方法来获取指定股票的日线数据,其中参数信息如下。

  • ts_code:要获取的股票代码,格式需要按照代码加证券所代码的形式 (如 000001.SZ、600848.SH).

  • start_date:开始日期,格式为YYYYMMDD

  • end_date :结束日期,格式为YYYYMMDD

# 获取历史数据 
df = ts_pro.daily(ts_code='600848.SH', start_date='20191101', end_date='20191201') 
# 输出结果 
print(df)

输出结果如下,可以看到得到的结果是一个 DataFrame 对象,其中包含了股票代码 (ts_code)、交易日期(trade_date)、开盘价 (open)、最高价 (high)、最低价 (low)、收盘价 (close)、昨收盘价(pre_close)、涨跌额 (change)、涨跌幅 (pt_chg)、成交量 (vol) 和成交额 (amount)。

    ts_code trade_date open high ... change pct_chg vol amount 
0 600848.SH 20191129 23.65 23.77 ... -0.40 -1.6913 49726.90 115677.275 
1 600848.SH 20191128 24.20 24.29 ... -0.53 -2.1919 48400.78 115730.812 
2 600848.SH 20191127 24.60 24.66 ... -0.28 -1.1447 31196.94 76005.876 
3 600848.SH 20191126 24.88 24.94 ... -0.31 -1.2515 47671.86 117692.851 
4 600848.SH 20191125 24.45 24.77 ... 0.30 1.2260 34728.89 85298.707 
5 600848.SH 20191122 24.41 24.79 ... 0.05 0.2048 34373.94 83902.745

在daily()方法中还可以设置一个 fields参数,用于返回指定的 DataFrame对象的列数据,参数值是一个字符串,每个列名之间用逗号隔开,代码如下。

# 获取历史数据 
df = ts_pro.daily(ts_code='600848.SH', start_date='20191101', end_date='20191201',fields='ts_code,open,high,low,close') 
# 输出结果 
print(df)

通过指定 fields参数之后,得到的 DataFrame 对象中就只包含了股票代码 (ts_code)、开盘价(open)、最高价 (high)、最低价 (low) 和收盘价 (close)。

    ts_code open  high  low   close 
0 600848.SH 23.65 23.77 23.00 23.25 
1 600848.SH 24.20 24.29 23.61 23.65 
2 600848.SH 24.60 24.66 24.13 24.18 
3 600848.SH 24.88 24.94 24.46 24.46 
4 600848.SH 24.45 24.77 24.04 24.77 
5 600848.SH 24.41 24.79 24.01 24.47

同样的方式,除日线数据之外,周线数据和月线数据则可以分别通过 weekly()和monthly()方法以同样的参数形式来获取。

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值