Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,在数据获取方面极大地减轻工作量、把精力更加专注于策略和模型的研究和实现上。
Tushare使用的标准数据格式是DataFrame类型,也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。
数据类型
交易数据:股票、商品期货、期权等金融品种的历史行情、大盘指数等。
公告数据:在交易所公告的信息,例如分配预案、融资融券等信息。
股票分类:行业分类、热点概念等。
基本面上数据:上市公司的财务报表数据、相应财务指标数据等。
宏观经济数据:存款利率、货款利率、DGP数据等。
新闻事件:财经新闻、海外股票咨询等。
利率信息:Shibor利率等。
网址:Tushare大数据社区
Tushare 是一个第三方库,因此需要我们进行安装。
安装tushare
pip install tushare
tushare的版本
import tushare as ts
ts.__version__
pro = ts.pro_api()
#查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
或者
#查询当前所有正常上市交易的股票列表
data = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
#取000001的前复权行情
df = ts.pro_bar(ts_code='000001.SZ', adj='qfq', start_date='20180101', end_date='20181011')
#取000001的后复权行情
df = ts.pro_bar(ts_code='000001.SZ', adj='hfq', start_date='20180101', end_date='20181011')
代码运行结果如下:
pro = ts.pro_api()
#提取2021-12-09的停牌股票
df = pro.suspend_d(suspend_type='R', trade_date='20211209')
代码运行结果如下:
pro版Tushare的部分数据需要一定积分获取权限,所需各类数据及代码可至官网查询 。
Excel 读写
Excel 读写
data.to_excel("/Users/Desktop/当前所有正常上市交易的股票列表.xlsx")
获取本地excel文件 2021年12月9日 行情数据
/Users/Desktop/2021年12月9日 日行情数据.xlsx
推荐pandas实现 读取Excel数据
优点:(1)代码简单(2)DataFrame 查、删、改
import pandas as pd
把文件路径记录下来
path = "/Users/Desktop/2021年12月9日 日行情数据.xlsx"
pandas :read_excel()
pd.read_excel(path)
代码运行结果如下:
把读取到的数据,保存下来
datas = pd.read_excel(path)
代码运行结果如下:
查询
某几行的数据
datas.iloc[0:2,:]
查询某几列的数据
datas.iloc[:,0:2]
查询某一格数据
datas.iloc[3,5]
按信息 查询数据
datas.loc[:,"close"]
datas.loc[:,["ts_code","close"]]
代码运行结果如下:
Python来进行实现 高级查询
datas.loc[datas.loc[:,"close"] > 10]
代码运行如下:
datas.loc[datas.loc[:,"ts_code"] = "603986"]
代码运行结果如下:
数据处理
cal = datas.loc[0:4,:]
求和
pd.DataFrame(cal.sum()).T
代码运行结果如下:
多张excel表求和
pandas.concat
all_amount = pd.concat([amount_08,amount_09],axis = 0, ignore_index = True)
代码运行结果如下:
sum # 求和
count # 非NA值的数量
min # 最小值
max # 最大值
argmin # 最小值的位置
argmax # 最大值的位置
quantile # 样本分位数
mean # 平均数
median # 中位数
mad # 平均绝对离差
var # 方差
std # 标准差
skew # 偏度
kurt # 峰度
数据处理完成后 保存在本地
result = all_ammout.sum()
result.to_excel("test.xlsx")
代码运行结果如下:
OLS 回归分析
使用最小二乘法OLS,进行回归运算
回归分析主要是用来确定两种数据之间的相关性,在金融建模中广泛使用,例如价格预测模型中,因子和股价之间的关系;套利策略中各个品种价格相关性等。
统计学相关函数,使用statsmodels
statsmodels是一个有很多统计类型的python库,它能完成很多统计测试、数据探索以及可视化
它包含一些经典的统计方法,比如贝叶斯和一个机器学习的模型。
线性模型(Linear models),广义线性模型(generalized models),鲁棒线性模型(rubust linear models)
线性混合效应模型(Linear mixed dffects models)
方差分析(ANOVA)方法(Analysis of variance methods)
时间序列处理(Time series processes)和状态空间模型(state space models)
广义矩估计方法(Generalized method of moments)
#--------------------------------------------------------
我们这次使用的是"线性模型"中的"OLS算法"
获取数据
1、上证指数数据,000001.SZ
2、深圳指数数据,3999001.SZ
3、对这两组数据进行回归分析
取出数据
每日涨跌百分比数据
sz_pct = df1.loc[:,"pct_chg"]
sh_pct = df2.loc[:,"pct_chg"]
回归分析,有自变量x和因变量y
如果数据之间有逻辑上的因果性(即因变量的变化,是由于自变量导致的),则自变量、因变量必须严格限定
反之,如果只是关心数据之间的相关性,则不在意因变量、自变量顺序
设置自变量、因变量
x = sz_pct
y = sh_pct
调用OLS函数
增加固定项
import numpy as np
import statsmodles.api as sm
cons = sm.add_constant(x)
OLS函数
result = sm.OLS(y,cons).fit()
查看拟合结果
print(result.summary())
代码运行结果如下:
Original: https://blog.csdn.net/weixin_42730572/article/details/121835627
Author: BelongToMe@Hui
Title: Python金融数据分析_3_读取数据并分析
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/699026/
转载文章受原作者版权保护。转载请注明原作者出处!