Python数据分析之股票数据

最近股市比较火,我年月初上车了,现在已经下了。中间虽然吃了点肉,但下车的时候都亏进去了,最后连点汤都没喝着。

这篇文章我们就用python对股票数据做个简单的分析。数据集是从1999年到2016年上海证券交易所的1095只股票。

img

共1000个文件。

我们的分析思路大致如下:

  • 每年新发股票数
  • 目前市值最大的公司有哪些
  • 股票一段时间的涨跌幅如何
  • 牛市的时候,个股表现如何

首先导入模块

import pandas as pd
import numpy as np
import os
import seaborn as sns
import matplotlib.pyplot as plt
# 绘图显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
复制代码

pandas读文件

file_list = os.listdir('./data/a-share/')pieces = []
for file_name in file_list:path = './data/a-share/%s' % file_namefile = pd.read_csv(path, encoding ='gb2312')pieces.append(file)shares = pd.concat(pieces)
复制代码

使用read_csv读文件的时候需要指定文件编码encoding ='gb2312'。将各个文件的DataFrame合并后,将索引重置一下,并预览一下数据

shares.reset_index(inplace=True, drop=True)
shares.head()
复制代码

img

这里我们最关注的列是日期代码简称收盘价

按照分析思路,我们首先来看看上市公司的总数

len(shares['代码'].unique())
复制代码

对股票代码去重、计数可以看到一共有1095家上市公司。那我们再看看每年新增的上市公司有多少家

# 计算每只股票的最早交易时间(即:上市时间)
shares_min_date = shares.groupby('简称').agg({'日期':'min'})
shares_min_date['上市年份'] = shares_min_date['日期'].apply(lambda x: str(x)[:4])# 每年上市公司的数量
shares_min_date.groupby('上市年份').count().plot()
复制代码

img

可以看到,多的时候每年60-80家,而05年-13年这段时间上市后的公司特别少,尤其是13年只有1家,原因是13年暂停了IPO。

下面我们再来看看数据集中最新的时间点(2016-06-08),市值较大的公司有哪些

shares_market_value = shares[shares['日期'] == '2016-06-08'][['简称', '总市值(元)']].sort_values(by='总市值(元)', ascending=False)# 市值最大的公司 top10
tmp_df = shares_market_value.head(10)# 画图
sns.barplot(x=tmp_df['总市值(元)'], y=tmp_df['简称'])
复制代码

img

截至16年6月8号,工商银行(爱存不存)的市值最高1.5万亿,不愧是宇宙第一大行。并且能发现市值前十的公司大部分是银行。

下面再来看看,从11.06.09 - 16.06.085年时间里个股涨跌情况。起点选11.06.09的原因是这一天包含了900左右只股票,样本较大。然后,我们抽取这两天股票的收盘价,计算涨跌幅

shares_110609 = shares[shares['日期'] == '2011-06-09'][['代码', '简称', '收盘价(元)']]
shares_160609 = shares[shares['日期'] == '2016-06-08'][['代码', '收盘价(元)']]# 按照股票代码将2天数据关联
shares_price = shares_110609.merge(shares_160609, on='代码')
shares_price
复制代码

img

一共有879只股票

# 多少家股票是上涨的
shares_price[shares_price['涨跌幅(%)'] > 0].count()
复制代码

img

# 多少家股票是上涨的
shares_price[shares_price['涨跌幅(%)'] < 0].count()
复制代码

img

可以看到,上涨的股票627只,占比71%。那我们再来看看,上涨的股票,涨幅分布情况

bins = np.array([0, 40, 70, 100, 1700])
# 股价上涨的公司
shares_up = shares_price[shares_price['涨跌幅(%)'] > 0]
# 按涨幅进行分组
shares_up['label'] = pd.cut(shares_up['涨跌幅(%)'], bins)
# 分组统计
up_label_count = shares_up[['label', '代码']].groupby('label').count()
up_label_count['占比'] = up_label_count['代码'] / up_label_count.sum().values
sns.barplot(x=up_label_count['占比'], y=up_label_count.index)
复制代码

img

涨幅分布还是比较极端的,虽然上涨的股票总体比较高,但上涨的股票中有30%只股票涨幅不足40%,也就是平均一年涨8%,如果理财年收益10%算及格的话,8%明显偏低了。再加上跌的股票,收益率低于10%的股票大于50%,所以股市的钱也不是那么好挣的。

当然也有踩狗屎运的时候,比如买到了下面这些股票并且长期持有

# 涨幅最大的公司
tmp_df = shares_up.sort_values(by='涨跌幅(%)', ascending=False)[:8]
sns.barplot(y=tmp_df['简称'], x=tmp_df['涨跌幅(%)'])
复制代码

img

金证股份持有5年后可以翻16倍。

同样的方式,我们可以看看股票跌幅分布

img

因为代码类似,这里就不贴了。从数据上将近70%的股票5年后跌幅在0-40%的区间。

最后一个有意思的数据,我们看看牛市的时候个股涨跌是怎么样的。我们选择14.06.3015.06.08这两天个股的涨跌情况。分析思路跟上面类似,我就直接说数据了。

牛市期间99.6%的股票都是涨的,也就是说个股基本都在上涨。来看看涨幅分布

img

可以看到,86%只股票翻了一番,所以牛市来了,基本上闭着眼选股都能挣钱。也不知道这种大牛市什么时候能再来一次,当然了,牛市来了能不能把握住是个大问题。

我的分析就到这里了,其实分析有意思的数据还有很多,比如结合一些市盈率等其他维度进行分析,有兴趣的朋友可以自行探索,我觉得还有一个更有挑战性的分析是预测个股的走势,虽然实践上不可行,但从学习角度来看还是挺值得研究的,如果大家点赞较多,我下周考虑写一下。

数据和源码我已经打包, 源码放在百度云盘上了需要可以微信扫描下方CSDN官方认证二维码免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47308.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【手把手教你】使用Python全面分析股票数据特征

导读&#xff1a; 本文主要从股市数据变量的特征分布及特征重要性两个角度对数据进行分析。 通过绘制图表等方法分析特征本身对分布状况或特征间相互关系。通过机器学习模型方法分析出特种重要性排序&#xff0c;选出对结果贡献较大对那几个特征&#xff0c;这对后面建模对模型…

使用python进行股票分析

使用python进行股票分析 目录 使用python进行股票分析数据获取数据分析量价关系底部盘整止跌企稳 数据获取 数据获取可以看前一篇文章,各大股票开放接口介绍 数据分析 量价关系 当股价缩量回调时&#xff0c;我们需要进行关注&#xff0c;但是如何找出类似的股票呢&#xf…

使用Python对股票数据进行分析

最近越发痴迷研究金融产品,不仅仅是因为前段时间重新对板块进行了新的布局,也相信如果理财是一生都需要做的事也愿意花时间去好好研究一下.大部分人一致认为定投会受益,说的人多了大家也就不去验证了.今天突然心血来潮看有关金融的书籍发现一种很玄学的手段去买卖股票 也对 &q…

Python进行股票分析

Python进行股票分析 1.准备工作 可以结合视频进行学习&#xff0c;视频链接&#xff1a;视频 2.工具以及所需库 jupyter notebooktushare、pandas、numpy、matplotlib3.库的安装 打开anaconda prompt命令框输入以下命令&#xff1a;conda install pandasconda install numpyc…

我用Python写了个股票大数据分析工具,真香!

近日A股指数大波动&#xff0c;各路股神又纷纷登场&#xff01;但相比个人&#xff0c;通过Python技术来实现的量化交易更值得相信&#xff01; 什么是量化交易&#xff1f; 我们利用计算机技术&#xff0c;通过建模分析、优化参数等手段&#xff0c;从历史金融数据中挖掘出影响…

Python3对股票数据进行分析

目录 一、量化交易概述 1、量化交易&#xff08;投资方法&#xff09; 2、算法交易&#xff08;自动交易、黑盒交易或机器交易&#xff09; 3、量化策略 4、量化选股 5、股票回测 二、股票数据 三、股票数据分析 1、导入股票时间序列数据 2、绘制股票成交量的时间序列…

python股票数据简单分析

一、简单说明 1、需求 2、数据 3、 部分结果 画的图 筛选的股票 二、学习收获 1、如何将DataFrame列的object类型转为自己需要float类型&#xff1f; 这里成交量为例子 转为相应float类型&#xff1f; 具体方法是&#xff1a; 首先先将该字段转换成列表类型&#xff0c;列…

自己动手写股票数据分析软件之数据获取

前言 本文旨在分享编程经验&#xff0c;非炒股指导软件。 一、Tushare数据介绍 Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程&#xff0c;能够为金融分析人员提供快速、整洁、和多样的便于分析的数据&a…

程序员在群里“匿名”骂老板,第二天被开除,聊天记录曝光

程序员的工作是很辛苦的&#xff0c;不过报酬也是比较丰富&#xff0c;一个经验丰富的程序员&#xff0c;几万的工资很正常&#xff0c;要是有别的收入&#xff0c;兼职写代码&#xff0c;也能赚到不少钱。现在的程序员呢&#xff0c;是越来越多人想要去做了。好多人对程序员似…

百度程序员妻子质疑老公不忠!每天很晚回家!周五下班不回家,说领导带他喝酒!结婚一年就出轨?...

请点击上面  一键关注&#xff01; 前几天我们刚刚爆料了华为工程师因为老加班导致妻子出轨的故事&#xff0c;今天又有一位百度员工的妻子怀疑自己老公出轨.......互联网的世界究竟有多乱&#xff1f; 每天很晚回家&#xff0c;周五晚上说自己跟领导去喝酒......妻子心里忐忑…

AI大模型接管谷歌搜索:一夜之间,整个领域变天了

来源&#xff1a;机器之心 最近几个月&#xff0c;我们已经见识到各种 AI 工具被重新发明&#xff0c;微软先后将 Office 全家桶接入 GPT-4&#xff0c;最近又把必应和 ChatGPT 插件的能力全部注入到 Windows 系统。 与此同时&#xff0c;在搜索领域占据重要地位的谷歌也不甘落…

推荐 - 腾讯云技术社区公众号

今天向各位推荐的是腾讯云技术社区的公众号&#xff0c;是腾讯官方推出的技术知识分享阵地&#xff0c;每周公开腾讯最新的技术工程方案&#xff08;例如微信、健康码、王者荣耀等知名业务的技术架构&#xff09;、ChatGPT 等行业前沿热点解读、研发经验和工作方法等干货&#…

LLM系列 | 13: 如何链接多个Prompt处理复杂任务?以智能客服为例

简介 溪云初起日沉阁&#xff0c;山雨欲来风满楼。 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖老班章的小女孩。紧接前面几篇ChatGPT Prompt工程和应用系列文章&#xff1a; 04:ChatGPT Prompt编写指南05:如何优化ChatGPT Prompt&…

chatgpt赋能python:Python调用蓝牙:从入门到实战

Python调用蓝牙&#xff1a;从入门到实战 如果你想要通过Python调用蓝牙&#xff0c;以此来读取和操作周围的设备&#xff0c;那么你已经来到了正确的地方。在本篇文章中&#xff0c;我们将探讨如何使用Python编程语言来与周围的蓝牙设备进行通信&#xff0c;为你的应用程序增…

chatgpt赋能python:如何使用Python操作蓝牙——一篇详细的教程

如何使用Python操作蓝牙——一篇详细的教程 蓝牙技术已经成为了我们生活中不可或缺的一部分&#xff0c;它可用于连接各种设备&#xff0c;例如耳机、音箱、手表&#xff0c;甚至是汽车。而Python作为一种广泛应用于各种领域的高级编程语言&#xff0c;也可以用来操作蓝牙设备…

做什么生意是最稳定的呢?

只要做生意就会有风险&#xff0c;钱存在银行最没有风险。 风险的大小取决于你承受能力&#xff0c;如果你只有几万元&#xff0c;那么摆地摊进货对于你来说都是大风险。如果你有几千万上亿&#xff0c;炒个十万的期货都对你来说无关紧要。 房产投资风险最小 投资也可以算是…

教你怎么鉴别发霉大米?

珍宝岛大米是黑龙江省鸡西虎林市的名优土特产&#xff0c;是鸡西市的三大地理标志保护产品之一。黑龙江省虎林市的虎林镇、杨岗镇、虎头镇、迎春镇、宝东镇、东方红镇、伟光乡、新乐乡、忠诚乡、阿北乡、珍宝岛乡等12个乡镇是经过我国农业部门实地考察过亲自验证的名优产地&…

设计模式——命令模式

在软件开发系统中&#xff0c;“方法的请求者”与“方法的实现者”之间经常存在紧密的耦合关系&#xff0c;这不利于软件功能的扩展与维护。例如&#xff0c;想对方法进行“撤销、重做、记录”等处理都很不方便&#xff0c;因此“如何将方法的请求者与实现者解耦&#xff1f;”…

java毕业设计——基于java+JavaBean+jsp的网上零食销售系统设计与实现(毕业论文+程序源码)——网上零食销售系统

基于javaJavaBeanjsp的网上零食销售系统设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于javaJavaBeanjsp的网上零食销售系统设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答…

2021年中国电饭锅(电饭煲)行业现状及前景分析:个性化消费推动市场向高端、智能化发展[图]

一、电饭锅&#xff08;电饭煲&#xff09;产业链 电饭煲又称作电锅&#xff0c;电饭锅。是利用转变为热能的&#xff0c;具有对进行、、炖、煲、煨等多种操作功能&#xff0c;使用方便、安全可靠。它不但能够把食物做熟&#xff0c;而且能够保温&#xff0c;使用起来清洁卫生&…