博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TuShare使用(一)简单获取个股数据
阅读量:4294 次
发布时间:2019-05-27

本文共 2087 字,大约阅读时间需要 6 分钟。

是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。

按和上的步骤,安装tushare。

一、读取股票数据

import tushare as ts  # 读取上证指数df = ts.get_hist_data('sh000001')print(df) # 另一种读法df = ts.get_k_data('sh')print(df) # 当然可以指定读取的时间段,如读取2019年1月的数据# 注意日期的写法,如写成'2019-1-1'会得到不正确的结果df = ts.get_k_data('sh000001', '2019-01-01', '2019-01-31')print(df)

二、构造close_px

import tushare as tsimport pandas as pdfrom pandas import DataFrame  # 股票集 代码:名称ticks = {'sh601857': 'ZGSY',  # 中国石油         'sh601398': 'GSYH',  # 工商银行         'sh600519': 'GZMT',  # 贵州茅台         'sh000001': '上证'} close_px = DataFrame()  # 先建立一个空对象 for key, value in ticks.items():    df = ts.get_k_data(key, '2003-01-01', '2011-12-31')  # 逐个读出股票数据     # 构造一个中间对象,只使用日期和收盘价    # 注意在这里需要把字符串表示的日期转换成日期对象    df1 = DataFrame({'date':pd.to_datetime(df['date']),                     value: df['close']})     df1.set_index('date', inplace=True)  # 把日期列设为索引     close_px = close_px.join(df1, how='outer')  # 把整理好的数据合并到close_px中 print(close_px)  # 构造后的成品,中间有一部分缺失数据,可以是因为2003年还没上市吧

三、完整的代码

import tushare as tsimport pandas as pdfrom pandas import DataFrame  # 股票集 代码:名称ticks = {'sh601857': 'ZGSY',  # 中国石油         'sh601398': 'GSYH',  # 工商银行         'sh600519': 'GZMT',  # 贵州茅台         'sh000001': '上证'} close_px = DataFrame()  # 先建立一个空对象 for key, value in ticks.items():    df = ts.get_k_data(key, '2003-01-01', '2011-12-31')  # 逐个读出股票数据     # 构造一个中间对象,只使用日期和收盘价    # 注意在这里需要把字符串表示的日期转换成日期对象    df1 = DataFrame({'date':pd.to_datetime(df['date']),                     value: df['close']})     df1.set_index('date', inplace=True)  # 把日期列设为索引     close_px = close_px.join(df1, how='outer')  # 把整理好的数据合并到close_px中 print(close_px)  # 构造后的成品,中间有一部分缺失数据,可以是因为2003年还没上市吧 # 以下的代码是照书上抄的,当然根据股票名称做了相应的改动rets = close_px.pct_change().dropna()spx_corr = lambda x: x.corrwith(x['上证'])by_year = rets.groupby(lambda x: x.year) print("\n各支股票与上证指数的相关系数")print(by_year.apply(spx_corr)) print("\n中国石油 与 贵州茅台 的相关系数:")print(by_year.apply(lambda g: g['ZGSY'].corr(g['GZMT']))) # 输出的内容与书上稍有区别,可能是中石油上市时间较晚的原因吧

 

转载地址:http://iwyws.baihongyu.com/

你可能感兴趣的文章
数据结构与算法学习-队列
查看>>
自定义View-初体验
查看>>
并发学习之 - synchronized
查看>>
FPS Sample服务端技术点
查看>>
理解投影矩阵
查看>>
box2d源码解析 一
查看>>
SAT分离轴--判断两个形状是否相交给出MTV
查看>>
GJK之判断是否相交
查看>>
数组中两个只出现一次的数字
查看>>
判断单链表中是否有环,找到环的入口节点
查看>>
利用VMWare和软路由多播实现校园网带宽叠加
查看>>
判断是两个形状是否相交(一)-SAT分离轴理论
查看>>
判断两个形状是否相交(二)-GJK
查看>>
box2d源码解析(一)概述
查看>>
Linux SWAP内存交换机制基本概念
查看>>
Linux 虚拟文件系统(一)概述
查看>>
Linux 虚拟文件系统(二)Mount、Open;设备文件、挂载和打开文件
查看>>
Linux虚拟文件系统(三)驱动和虚拟文件系统读书笔记
查看>>
Linux下自定义TCP OPTIONS
查看>>
Swift 中的集合 Array
查看>>