利用python+tushare分析海康威视和中兴通讯之间的关系
一、股票间的关系
当你关注一只股票的时候,你往往会一直去关注他的上涨、下跌,但是他的上涨下跌不是单一的,会与股票的本身、行业等相关,也会与其他股票有关系。
今天我利用python+tushare来分析一下海康威视与中兴通讯的关系,当然我是随意选的,可以利用自己的专业知识去选择较强关联的股票来分析。
下表是最近三年的历史数据,分析股价变化、交易量的关系。
海康与中兴两股之间的最近三年股价、交易量相关关系分析
二、tushare介绍
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。
三、使用tushare获取
如果想要较好的使用tushare,最好先注册,会更加的稳定和可靠。
具体代码如下:
# -*- coding: utf-8 -*-
'''
Author:唐朝品鉴
Date:2020年5月01日
获取海康威视、中信通讯的三年股票数据,分析两者的关系
'''
import pandas as pd
import tushare as ts
import matplotlib.pyplot as plt
#利用tushare获取两个指数的数据,
#ts.get_hist_data获取的是三年的数据
df1=ts.get_hist_data('002415') #海康威视
df2=ts.get_hist_data('000063') #中兴通讯
def mydata(df,tcode):
# 插入一列fdate,并把值设为索引的值
df.insert(0, 'fdate', df.index.values)
#按fdate列进行排序
df.sort_values('fdate',inplace=True)
# 删除原来的索引,重新按序号生成索引
df.reset_index(drop=True, inplace=True)
#重新命名
for column in df.iloc[:, 1:]:
df.rename(columns={column: str(column) +'_'+str(tcode)}, inplace=True)
return df
df3=mydata(df1,'002415')
df4=mydata(df2,'000063')
#利用pandas的merge函数,把两表合并
df5=pd.merge(df3,df4, on='fdate')
#利用pandas把合并后的结果存储起来,后面可以验证和分析
df5.to_excel('f:/python_analyze/gp_zs_new.xlsx')
#取出要分析的列
df6=df5[['fdate','price_change_002415','volume_002415','price_change_000063','volume_000063']]
#相关关系函数
df7=df6.corr()
print(df7)
#利用pandas把分析结果存储起来
df7.to_excel('f:/python_analyze/gp_lzgx.xlsx')
print('已完成')
四、了解更多
想要了解更详细,当然也可以咨询我 ,也可以通过下面的常用链接访问。
作者:唐朝品鉴
mail:funsu@qq.com
QQ:44953683
常用数据分析资料链接:
1、tushare:tushare官网
2、pandas:pandas官网
3、numpy:numpy中文教程
4、matplotlib:matplotlib官网