Python程序员联盟程序员@IT·互联网

有趣!【9个月银行股数据】|可视化分析

2017-10-07  本文已影响221人  菜鸟学python

这是菜鸟学Python的第107篇原创文章
阅读本文大概需要3分钟

小白学数据可视化matplotlib篇我已经写了6篇了,讲了这么多,我一直觉得缺少一个综合实例来融合一下. 年初在一位高手的指点下,买了银行和白酒的股票, 时机非常不错, 收益还可以. 其实我个人比较偏爱银行股,稳中有进. 细水长流是我一贯投资的宗旨.所以我想写一篇关于银行股的数据可视化分析,分享给大家~~

前面学了很多图形:折线图,散点图,直方图,密度图还有箱体图,每一种都各有千秋. 当我们要数据可视化的时候,选择什么样的图去描述才能更好的反映数据内在的联系,这个问题值得我们反复的推敲.

1.数据的准备

数据的准备,银行股有几十个,这里我们挑选比较大的,典型的银行股来分析一下.数据选择的时候,我们主要是从股价,涨幅,成交量和成交金额,这几个维度去探索一下.

1).我挑选了我比较喜欢的5个银行:

工商银行(宇宙第一银行)
中国银行
招商银行
建设银行
兴业银行
数据获取非常简单,可以去很多财经网站爬取一下,这些网站爬取的步骤前面讲了很多,这里就不再重复描述.我们这篇文章的重点放在可视化数据分析上面

2).数据的格式

主要是分析2017从1月初到现在9月15号的成交数据,然后保存为csv文件,格式如下:比如 中国银行601998的数据
头部是:日期,收盘价,成交量,涨幅,成交金额(单位是十亿)



其他的几个银行股数据类似,让我赶快进入重头戏数据可视化部分,探索一下里面有什么有趣的发现

2.近9个月的累计涨幅和成交量

看一下可视化图:


从图中可以看出:招商银行涨幅第一,兴业银行涨幅最小,
- 招行的累计成交金额是最大的1700多亿,排第二,涨幅是最大的有40+%
- 兴业银行虽然累计成交金额第一,但是涨幅却最小,说明卖盘也很多.但是我们似乎忽略了什么,不错就是二者之间的关系,那我们把图稍微改一下

原来图里面隐藏的比较深的是建设银行,成交额最少,但是涨幅也不小。不知道细心的小伙伴发现没有,就是建行的筹码都在大户,大机构手里,筹码非常集中,所以资金量不需要很大,就可以拉起来,而兴业银行则反之.

3.五大银行月累计涨幅

前面我们是从横截面去总体分析整个数据,现在我们要切入到更细的角度分析,从月累计幅度去分析一下,这里月幅度波动会很频繁,所以用折线图会比较好的体现数据


1).因为我们的数据是每个交易日的数据,所以先要对数据进行处理一下
2).为了更方便的提取数据,我们最好把index变成标准的pandas的datatime日期
3).提取月累计的涨幅
4).构造成一个dataframe对象months_df返回
中国银行 兴业银行 工商银行 建设银行 招商银行
0 4.02 5.65 4.24 5.56 7.73
1 2.79 -1.85 1.97 2.99 2.34
2 0.58 -3.26 3.18 0.37 -1.32
3 -3.00 -4.67 0.88 0.75 -0.15
4 3.87 6.92 7.43 6.41 16.33
5 -0.77 5.68 0.13 1.00 10.34
6 10.47 5.28 9.48 9.34 7.15
7 7.85 -0.46 7.13 3.83 4.86
8 -4.06 -1.52 -2.16 -2.38 -2.90

1).x轴是月份,但是默认的月份是从0-8,所以我们把index变成1-9月份
2).累计的跌幅最大是-5%,而涨幅最大近有20%,所以我们y轴的取[-5,20)
3).中文字符的话x轴,y轴,图例和标题处理一下

看一下可视化图:


不知道大家有么有发现什么奥秘,1,5,7三个月份都是上涨期,而且5月份5大银行行动一致集体上涨.2,4,6,9月份处于下跌通道,4月和9月份5大银行又集体下跌到最低价. 很明显兴业银行非常活跃,难怪成交金额这么大.

4.五大银行股涨幅波动情况

刚才我们通过折线图已经发现了一些端倪,有一些股票特别活跃,有一些股票相对稳定一些,现在我们分析一下波动情况,看一下他们的密度图


我们看一下可视化图:


周线的波动上:兴业银行稳定性最差,波动的范围很大[-15,20],其他4大银行波动的核心区域很接近[-3.5,4],而且招行很明显更优秀,上涨的幅度优于其他4个银行

月线波动


月线就看的更明显了,兴业银行还是不稳定,建行相对其他银行来说稳定性更高.
中行出现了2次M头,这说明什么,说明中行在今年有两次比较规则的波动,一波集中的涨,一波集中的跌,那为什么其他的银行没有出现双头呢,有兴趣的同学可以去研究一下"一带一路".

5.五大银行股数据分布情况

经过前面的各种分析,我们基本已经挖掘出一些银行股的一些信息,最后我们用一个非常有名的箱体图来综合分析一下.箱体图其实在在统计学里面经常用到,能显示数据里面的最大值,上四分位数,中位数,下四分位和最小值.可以帮助我们分析数据里面的内在分布情况和异常数据.


数据处理和前面几步没有差别,区别在于我们用pandas的boxplot()来呈现箱体图,比较关键的是刻度一定要精确一点,方便我们后面分析箱体图上的数据

看一下可视化图:



1).从箱体的长度来看,我们发现中行和建行的箱体长度最短,招行和兴业的长度最长,说明中行和建行比较稳定,招行和兴业波动比较大一些
2).从箱体的中位数(绿线)看,建行的数据比较均匀
3).5个股票里面,招行是5个银行里面最高的,但是箱体长度同时又比较长,这样的股票要注意,赶上了时机会让你大赚一笔,建行的下四分位明显高于中行.而兴业银行很明显最差的

建议:激进投资者买招行,稳健买建行

结论:

好了,数据可视化matplotlib综合实战案例,就讲道这里了.上面的数据可视化分析只是沧海一粟,皮毛而已.因为我们的维度只是1-2个,对于几十个维度的复杂的数据集探索和分析,我更喜欢用R语言去探索挖掘.而这过程也是相当好玩.

关注微信公众号“菜鸟学Python”,留言获得更多干货源码!

上一篇 下一篇

猜你喜欢

热点阅读