用Tushare数据库获取银行股日度数据

用Tushare数据库获取银行股日度数据


Tushare是一个免费的、开放的数据平台,可以获取中国金融市场的实时和历史数据。本文将介绍如何使用Python和Tushare获取中国A股市场所有银行股票的日度交易数据,并计算股票的收益率和对数收益率。本文将介绍如何使用Python和Tushare获取银行股票的日度交易数据,并计算股票的收益率和对数收益率。如果您想深入了解如何使用Python和Tushare获取和分析金融数据,那么本文将为您提供有价值的参考。

在Python中用Tushare数据库获取银行股日度数据

首先,我们需要安装Tushare库。在命令行中输入以下命令即可安装:

pip install tushare

然后,在Python中引入必要的库:

import tushare as ts
import pandas as pd
import numpy as np
from time import sleep

设置pandas的显示选项:

pd.set_option('display.max_rows', 50) # 当行超过50不显示
pd.set_option('expand_frame_repr', False)  # 当列太多时不换行
pd.set_option('display.unicode.ambiguous_as_wide', True) # 设置命令行输出时的列对齐功能
pd.set_option('display.unicode.east_asian_width', True) # 设置命令行输出时的列对齐功能

接着,我们需要设置Tushare的token:

pro = ts.pro_api('你的token') #你的token

我们将从Tushare获取所有股票的基础信息,并删除没有行业信息的股票。然后,我们将上市日期设置为日期,并筛选出行业信息最后两个字是‘银行’的股票,并且在给定的结束日期之前上市。

start_date = '20100101' #起始日期
end_date = '20211231' #结束日期

df = pro.stock_basic(exchange='', list_status='L') #获取所有股票的基础信息
df = df.dropna(subset=['industry']) #刨去没有行业信息的股票
df['list_date'] = pd.to_datetime(df['list_date']) #上市日期设置为日期
df = df.loc[(df['industry'].str.endswith('银行')) & 
            (df['list_date']<'20211231')] #筛选行业信息最后两个字是‘银行’的股票,并且在end_date之前上市 
df = df.reset_index(drop=True) #重新设置index
code_list = df['ts_code'].tolist() #将股票代码设置为一个list列表

我们使用for循环遍历股票代码列表,然后使用Tushare获取每个股票的日度交易数据,并计算股票的收益率和对数收益率。我们还将数据按日期从小到大排序,并只保留自己需要的列名。最后,我们将数据导出为csv文件,并在每个请求之间休眠0.1秒,以防止频繁的访问Tushare服务器。

for i in code_list: #遍历list
    df = pro.daily(ts_code=i, start_date=start_date, end_date=end_date) #tushare获取股票日度信息
    df['return'] = df['close']/df['pre_close']-1 #计算收益率
    df['ln_return'] = np.log(df['close'])-np.log(df['pre_close']) #计算对数收益率
    df = df.sort_values(by=['trade_date']) #通过日期来从小到大排序
    df = df[['ts_code', 'trade_date', 'close', 'return', 'ln_return']] #只留下自己需要的列名
    df = df.reset_index(drop=True) #重新设置index
    print(df) #打印整个df
    df.to_csv(f'{i}.csv', encoding='gbk') #导出为csv文件
    sleep(0.1) #休息0.1秒,防止访问过高

在本文中,我们使用Python和Tushare获取银行股票的日度交易数据,并计算了股票的收益率和对数收益率。Tushare提供了丰富的API接口,可以帮助开发人员快速地获取和分析金融数据。如果您对使用Python和Tushare获取和分析金融数据感兴趣,那么可以深入了解Tushare的API文档,并自行尝试分析更多的金融数据。

完整代码

import tushare as ts
import pandas as pd
import numpy as np
from time import sleep
# pandas设置
pd.set_option('display.max_rows', 50) # 当行超过50不显示
pd.set_option('expand_frame_repr', False)  # 当列太多时不换行
# 设置命令行输出时的列对齐功能
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# Tushare设置
pro = ts.pro_api('你的token') #你的token

start_date = '20100101' #起始日期
end_date = '20211231' #结束日期

df = pro.stock_basic(exchange='', list_status='L') #获取所有股票的基础信息
df = df.dropna(subset=['industry']) #刨去没有行业信息的股票
df['list_date'] = pd.to_datetime(df['list_date']) #上市日期设置为日期
df = df.loc[(df['industry'].str.endswith('银行')) &
            (df['list_date']<'20211231')
            ] #筛选行业信息最后两个字是‘银行’的股票,并且在end_date之前上市
df = df.reset_index(drop=True) #重新设置index
code_list = df['ts_code'].tolist() #将股票代码设置为一个list列表

for i in code_list: #遍历list
    df = pro.daily(ts_code=i, start_date=start_date, end_date=end_date) #tushare获取股票日度信息
    df['return'] = df['close']/df['pre_close']-1 #计算收益率
    df['ln_return'] = np.log(df['close'])-np.log(df['pre_close']) #计算对数收益率
    df = df.sort_values(by=['trade_date']) #通过日期来从小到大排序
    df = df[['ts_code', 'trade_date', 'close', 'return', 'ln_return']] #只留下自己需要的列名
    df = df.reset_index(drop=True) #重新设置index
    print(df) #打印整个df
    df.to_csv(f'{i}.csv', encoding='gbk') #导出为csv文件
    sleep(0.1) #休息0.1秒,防止访问过高
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

strangequark

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

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

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

打赏作者

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

抵扣说明:

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

余额充值