Python金融数据分析

Python金融数据分析,第1张

Python金融数据分析 Tushare

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())

代码运行结果如下:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5657731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存