杰瑞科技汇

如何用Python玩转Tushare?

什么是 Tushare?

Tushare 是一个免费、开源的 Python财经数据接口包,它为金融分析、量化投资等领域的数据获取提供了极大的便利,你可以通过它轻松获取股票、期货、基金、宏观经济、新闻等海量数据。

如何用Python玩转Tushare?-图1
(图片来源网络,侵删)

核心特点:

  • 数据全面:覆盖 A股、港股、美股、期货、基金、债券、数字货币等市场的历史和实时行情数据。
  • 接口丰富:除了行情数据,还提供财务数据、资金流向、宏观经济指标、新闻公告等。
  • Pythonic:API 设计符合 Python 的使用习惯,易于学习和上手。
  • 活跃社区:拥有庞大的用户群体和活跃的社区支持,遇到问题容易找到解决方案。
  • 免费与付费:提供免费的数据接口,但有一定的频率限制,对于更专业、更大量、更高频的数据需求,可以申请付费 Pro 版本。

安装与配置

1 安装

你可以通过 Python 的包管理工具 pip 来安装 Tushare。

# 安装最新稳定版
pip install tushare
# 如果需要安装特定版本
pip install tushare==1.2.89

2 获取 Token 并配置

Tushare 使用 Token(令牌)来识别用户身份,这是调用接口的凭证。

  1. 注册账号:访问 Tushare 官网,完成注册。
  2. 获取 Token:登录后,在个人主页的“接口Token”一节中,你可以找到你的 Token。
  3. 配置 Token:在 Python 代码中,你需要设置这个 Token。

推荐做法:将 Token 设置为环境变量,而不是直接写在代码里,这样更安全。

  • 在 Linux 或 macOS 中
    export TUSHARE_TOKEN='你的token'
  • 在 Windows 中 (命令提示符)
    set TUSHARE_TOKEN=你的token
  • 在 Python 代码中设置
    import tushare as ts
    # 直接设置你的token
    ts.set_token('你的token')

基本使用示例

Tushare 的使用非常直观,通常遵循“获取接口 -> 设置参数 -> 调用”的模式。

1 初始化 Pro API

获取 Token 后,你需要初始化一个 pro_api 对象。

import tushare as ts
# 设置token (如果未通过环境变量设置)
# ts.set_token('你的token')
# 初始化pro接口
pro = ts.pro_api()

2 获取股票日线行情数据

这是最常用的功能之一,获取某只股票的每日行情数据。

import tushare as ts
import pandas as pd
# 初始化pro接口
pro = ts.pro_api()
# 获取股票日线数据
# ts_code: 股票代码 ('000001.SZ' 表示平安银行)
# start_date: 开始日期 (格式: YYYYMMDD)
# end_date: 结束日期 (格式: YYYYMMDD)
df_daily = pro.daily(ts_code='000001.SZ', start_date='20250101', end_date='20251231')
# 将数据打印出来
print(df_daily.head())
# 也可以保存为 CSV 文件
df_daily.to_csv('pingan_bank_daily_2025.csv', index=False)

输出示例

      ts_code trade_date  open  high   low  close  pre_close  change  pct_chg       vol       amount
0  000001.SZ    20251229  11.52  11.59  11.40   11.43      11.58   -0.150  -1.2953  183822.45  212025.2890
1  000001.SZ    20251228  11.58  11.65  11.52   11.58      11.52    0.060   0.5208  198397.13  229658.2655
2  000001.SZ    20251227  11.50  11.62  11.49   11.52      11.51    0.010   0.0868  163456.15  188438.5150
3  000001.SZ    20251226  11.45  11.53  11.43   11.51      11.45    0.060   0.5240  166919.36  192392.3570
4  000001.SZ    20251225  11.40  11.48  11.38   11.45      11.43    0.020   0.1749  145027.25  166525.3985

可以看到,返回的是一个 pandas.DataFrame 对象,非常方便进行后续的数据处理和分析。

3 获取股票列表

如果你想获取所有 A 股的列表,可以使用 stock_basic 接口。

# 获取A股列表
df_stock_list = pro.stock_basic(exchange='SZ', list_status='L') # L:上市, P:暂停上市, D:退市
print(df_stock_list.head())

4 获取指数成分股

以沪深300为例。

# 获取沪深300成分股
df_hs300 = pro.index_weight(index_code='000300.SH')
print(df.hs300.head())

5 获取财务数据

获取公司的资产负债表信息。

# 获取资产负债表数据
df_balance_sheet = pro.balancesheet(ts_code='000001.SZ', period='20250331')
print(df_balance_sheet.head())

Tushare Pro vs. Tushare 免费版

特性 Tushare 免费版 Tushare Pro (付费)
数据覆盖 核心数据 全面,包含更多细分领域数据
数据更新频率 T+1 (延迟一天) 部分高频数据 (如分钟级、逐笔)
数据条数限制 (每个接口每天有调用次数限制) (或非常高)
数据长度限制 (单次请求最多5000条) (可拉取全量历史数据)
接口稳定性 一般 高优先级,更稳定
专属客服支持
适用人群 个人学习者、小型项目 专业量化团队、金融机构、学术研究

对于初学者和大多数个人项目,免费版已经足够使用。


进阶使用技巧

1 数据缓存

为了避免重复请求接口,Tushare 提供了简单的缓存功能,这对于调试和减少调用次数非常有用。

# 设置缓存目录
ts.set_token('你的token')
pro = ts.pro_api()
# 使用缓存
df_cached = pro.daily(ts_code='000001.SZ', start_date='20250101', end_date='20251231', cache='daily_data')
# 不使用缓存
df_no_cache = pro.daily(ts_code='000001.SZ', start_date='20250101', end_date='20251231', cache=False)

2 与 Pandas 和 Matplotlib 结合使用

Tushare 返回的是 DataFrame,可以无缝地与 pandasmatplotlib 等库结合,进行数据分析与可视化。

import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 获取数据
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ', start_date='20250101', end_date='20251231')
# 将日期列转换为datetime类型
df['trade_date'] = pd.to_datetime(df['trade_date'])
# 绘制股价走势图
plt.figure(figsize=(14, 7))
plt.plot(df['trade_date'], df['close'], label='收盘价')'平安银行 (000001.SZ) 2025年收盘价走势')
plt.xlabel('日期')
plt.ylabel('价格 (元)')
plt.legend()
plt.grid(True)
plt.show()

Tushare Python 版本是国内金融数据获取的利器,它通过简洁的 API 将复杂的金融数据结构化,并以 pandas.DataFrame 的形式呈现,极大地降低了量化投资和金融分析的门槛。

学习建议

  1. 从官网开始:务必仔细阅读 Tushare Pro 官方文档,里面详细列出了所有可用的接口及其参数。
  2. 先玩转免费版:熟悉基本的数据获取和 pandas 操作。
  3. 关注社区:在 Tushare 的社区或知识星球里,有很多大佬分享的实用代码和项目,可以学到很多技巧。
分享:
扫描分享到社交APP
上一篇
下一篇