Tushare财经数据接口

股票基本面统计

使用get_stock_basics()函数一次性下载所有股票基本面数据。这对观察股票的整体市场情况很有帮助。

import  tushare  as  ts
import  pandas as pd
import numpy as np
import  matplotlib.pyplot  as  pltstock = ts.get_stock_basics()     # 下载股票基本面数据
stock.to_excel('stock.xlsx')     # 保存为电子表格
stock.shape                      # Out: (3678, 22)


数据集规模为3823x22,每行是一支股票的基本数据。字段详情请查看Tushare的网站。数据集字段详情查看http://tushare.org 网站。本节用到的数据列有:code,股票代码;name,名称;industry,所属行业;area,地区;pe,市盈率;totals,总股本(亿元人民币);esp,每股收益;timeToMarket,上市日期。

下面从电子表格文件中读取数据,注意股票代码code列的处理细节。Pandas读取数据时,总是试图将数据自动转换为数值类型。深市类似’002522’的股票代码读入后,将丢失前导字符“00”,变为整数2522,因此读取时特意指定code字段为字符串。

df = pd.read_excel('stock.xlsx', dtype={'code': 'str'})   # code字符串类型
df.set_index('code', inplace=True)   # 将code设为索引列
df.loc['002522']                      # 显示某支股票基本面

len(df.industry.unique())   # 显示行业数

len(df.area.unique())  # 显示地区数(即股票的归属省份)

# 按地区统计上市公司数量,体现地区经济实力
df.groupby('area').size().sort_values(ascending=False)


由上面的统计结果可见,经济越发达、越有活力的地区,上市公司的数量越多。读者还可以按行业进行类似的统计。数据框中的timeToMarket字段代表上市日期,其数据是格式形如“20190315”的整数类型。我们可以提取出其中的年份以统计每年的股票发行数量。

year = df.timeToMarket.astype('str').str[:4]  # 转为字符串,提取前4位的年份
yearnum = df.groupby(year).size()   # 按年份统计,得到每年股票发行量
yearnum

plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定中文黑体字体
# 下面的False修正坐标轴上负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
# 数据集中有几支股票没有发行年份(年份为0), 作图时排除0年份
yearnum[yearnum.index!='0'].plot(fontsize=14, title='年IPO数量')

从图中可见IPO发行年份的几个高点和国内股票市场的几次牛市时间对应,熊市时发行数量跌入低谷。下面计算市场的平均市盈率pe,这是衡量股票市场估值的重要参数。

df.pe.mean()             # 简单的算术平均pe


观察数据集发现,数据集中亏损股票的pe为0,因此考虑剔除亏损股票。

df[df.pe > 0].pe.mean()   # 剔除亏损股票后计算pe均值


上面的pe是简单的算术平均,以市值为权重的加权pe可能更能准确地反映市场状况。由于下载的数据集中没有总市值和股票单价,因此只能根据现有的字段推算总市值。由某些列的值计算新的列值也是数据处理中常有的情况。这里推算总市值的依据如下:
股票单价 = 4esp(每股收益)pe(市盈率)
总市值 = 股票单价*totals总股本(亿元人民币)
数据集中每股收益esp是单个季度的收益,因此全年收益要乘以4。

df['tvalue'] = 4 * df.esp * df.pe * df.totals     # 计算总市值,增加新列tvalue
np.sum(df.pe * df.tvalue) / df.tvalue.sum()   # 计算以市值为权重的加权pe


上面的计算结果反映了某次季报后的市场加权pe情况,结果和市场真实值相比有差异。这是因为股票的每个季度收益不同,因而不能简单按“4*单季收益”来计算全年收益。

我国股票市场现分为沪市(股票代码60开头)、深圳主板(股票代码00开头)、创业板(股票代码30开头)及最新上市的科创板(股票代码68开头)。如下代码可计算不同板块的pe值和股票数。

df['board'] = df.index.str[:2]     # 取code的前2个字符,新增board列
# 按板块类型统计pe均值,计数
df.groupby('board').pe.agg([('pe均值', 'mean'), ('股票数', 'count')])

Tushare财经数据接口(三)案例——股票基本面统计相关推荐

  1. Tushare财经数据接口(五)案例——优质基本面的股票池创建

    Tushare财经数据接口 优质基本面的股票池创建 上市公司的基本面数据是体现公司经营历史业绩的重要凭据,也是投资者判断公司未来发展前景的重要依据,金融分析人员和股票投资者需要通过分析公司基本面质量来 ...

  2. 以下哪个不是python财经数据接口工具_这7种Python的全新玩法,大部分人都不知道!...

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面,主要内容如下: 创一个小群,供大家学习交流聊天 如果有对 ...

  3. python财经数据接口包_Tushare|免费开源财经数据接口包

    「Tushare」是云观测提供免费开源的python财经数据接口包,主要实现对股票等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们在数据 ...

  4. Tushare开源数据接口的安装指南

    引言: Tushare是业界非常有名的开源数据接口,本文将简要介绍如何安装并使用之. 1.  官网主页 TuShare是一个免费.开源的python财经数据接口包; 摘自官网的信息. http://t ...

  5. 【Python金融量化 1- 100 】了解Python及常用财经数据接口包

    了解Python及常用财经数据接口包 背景介绍: Python是一种计算机程序设计语言,它诞生于20世纪90年代初,正在逐渐被广泛运用中. Python的创始人是Guido van Rossum.相传 ...

  6. L:python的Pandas模块:实例练习(泰坦尼克号数据集分析,电影票房统计,股票基本面统计)

    实例练习 泰坦尼克号数据集分析 使用Seaborn库中包含的titanic数据集进行一些数据统计. Seaborn是一个图形库,Anaconda已包含此库.数据集参见: https://github. ...

  7. 股票财经数据接口(一)

    最近股票大跌,打算做点数据分析.转个数据接口,等我完成数据分析有具体结论再写出来吧. 做了一点股票分析数据准备,做了个均线图: http://stock.chenpeng.info/randomone ...

  8. python财经数据接口包_Tushare 财经数据接口包介绍(Python)

    最近在研究Python的量化交易实现,因为需要股票相关的金融数据,自己动手爬,实在太麻烦了. 于是在网上找找有没现成的数据接口,好做数据分析,发现了这个好东西,分享一下. Tushare 介绍: Tu ...

  9. Python 通过 Tushare Pro 获取财经数据接口

    一.首先注册用户,注册地址:Tushare数据与wind.东财等收费数据源相比,tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升 ...

最新文章

  1. 在浏览器中内嵌word_关于项目浏览器内核的选取解读
  2. 洛谷P1122 最大子树和 树形DP初步
  3. 一位跨平台开发者的自白
  4. win10恢复出厂设置_电脑Win10系统恢复出厂设置
  5. proxy_cache的使用
  6. c语言内部超链接,HTML5中文本元素超链接的属性
  7. dts同步常见问题_家庭影院十大常见故障解决办法
  8. 大数据时代下的个人知识管理
  9. 卡尔曼滤波原理详解及系统模型建立(simulink)
  10. 一文讲清微服务架构、分布式架构、微服务、SOA
  11. cocoa touch框架
  12. BitTorrent Sync简介
  13. 图文笔记,带你走进《未来简史》(11-15)
  14. 关于u8的三种备份方式
  15. python游戏源码——2绘画简易坦克
  16. 漫谈Linux系统的二次定制
  17. ITFriend创业败局(二):初创公司应该怎样分配股权
  18. 单片机0 10秒计时C语言,基于单片机的秒,分,时的精确计时实现
  19. 【luogu2026】【数学】求一次函数解析式
  20. Maven - Error:java: Annotation processing is not supported for module cycles. Please ensure that all

热门文章

  1. Linux内存空间的分配
  2. python:try...except、else、finally异常处理语句
  3. 解决consul出现I/O error on GET request for “http://XXX“: XXX错误
  4. LWIP应用开发|广播与组播
  5. 番外篇:研究生心得:研二篇(一)
  6. TechNet动手实验营-Windows Server 2008 分支机构管理实践-5月8日-苏州
  7. 【深度学习】生成式对抗网络的损失函数的理解
  8. 实现Python构造函数重载效果
  9. 周小川最新演讲:Libra可能会导致“赢者通吃”的局面(万字长文)
  10. leetcode-13-罗马数字转整数 Python 编程实现