我代码栏目都是针对基础的python数据分析人群,比如想写个本科毕业论文,课程论文,做个简单的案例分析等。过去写的案例可能使用了过多的机器学习和深度学习方法,文科的同学看不懂,可能他们仅仅只想用python做个回归或者画个图。本期开始我会更新一些简单的案例,适合经济新闻等人文社科领域的案例。
(当然后面还会有适合硕士写论文的模型案例,高级模型,组合模型,混合模型等。)
本次背景是对不同类型的上市银行公司的财务指标进行对比。主要是对上市银行中的三大类:国有银行,股份制银行,城市商业银行。
财务指标主要有:
['每股收益(元)','每股净资产(元)','每股现金流(元)', '净利润(元)','营业总收入(元)', '总资产(元)','净资产收益率','总股本(股)']
本文的数据来源于同花顺,本文选取了2022年第一季度的32家上市银行的重要的财务报告数据。并且将银行分为国有银行,股份制银行,城市商业银行三大类,进行描述性统计分析,对比不同类型银行的财务数据的不同,得出结论与观点。
数据长这个样子:
选用的重要的财务数据有——'每股收益(元)','每股净资产(元)','每股现金流(元)','净利润(亿元)','营业总收入(亿元)','总资产(亿元)','净资产收益率','总股本(亿股)'。
选取的32家银行分为三类银行,如下表所示:
股票简称 |
类型 |
股票简称 |
类型 |
建设银行 |
国有银行 |
宁波银行 |
城商银行 |
交通银行 |
国有银行 |
成都银行 |
城商银行 |
邮储银行 |
国有银行 |
杭州银行 |
城商银行 |
工商银行 |
国有银行 |
南京银行 |
城商银行 |
农业银行 |
国有银行 |
长沙银行 |
城商银行 |
中国银行 |
国有银行 |
贵阳银行 |
城商银行 |
招商银行 |
股份制银行 |
重庆银行 |
城商银行 |
兴业银行 |
股份制银行 |
上海银行 |
城商银行 |
浦发银行 |
股份制银行 |
江苏银行 |
城商银行 |
平安银行 |
股份制银行 |
北京银行 |
城商银行 |
中信银行 |
股份制银行 |
苏州银行 |
城商银行 |
民生银行 |
股份制银行 |
厦门银行 |
城商银行 |
华夏银行 |
股份制银行 |
齐鲁银行 |
城商银行 |
浙商银行 |
股份制银行 |
青岛银行 |
城商银行 |
光大银行 |
股份制银行 |
郑州银行 |
城商银行 |
西安银行 |
城商银行 |
||
兰州银行 |
城商银行 |
首先利用Excel画出三维百分比柱状堆积图,如下: (excel里面画图就不用教了吧....)
如图,我们可以看到数据分布的一些特点,比如每股现金流可能为负数。并且不同的银行他们的每项财务指标都各有各自的特点,下面进一步计算。
开始用python计算会简便一些。
先导入包:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams ['font.sans-serif'] ='SimHei' #显示中文
plt.rcParams ['axes.unicode_minus']=False #显示负号
sns.set_style("darkgrid",{"font.sans-serif":['KaiTi', 'Arial']})
读取数据,查看前五行:
data=pd.read_excel('银行数据.xlsx')
data.head()
描述性统计,计算每个指标的基础统计量(均值,方差,四分位数等)
data.describe()
分组聚合,按照银行的类型进行分组,然后再计算这些指标。
对三种银行的数据进行描述性统计指标的计算,有变量个数,均值,方差,四分位数,中位数,最大最小值等,如下表所示:
data.groupby('类型').describe().T#.to_excel('描述性统计.xlsx')
如图可以对比不同银行类型的每个指标之间的不同统计量的差异。
这里太多了指标就没展示完,可以把我上面代码里面的“#”删掉就存到了本地的Excel表里面查看。
从表中我们可以看到,每种银行他们各自的每项财务指标的各项统计量,但是数值不够直观,这不利于比较。下面我们画出所有财务数据的相线图进行对比。
先查看表头,也就是我们的指标名称:
column = data.columns.tolist()[1:-1] # 列表头
column
画图
fig = plt.figure(figsize=(6, 12), dpi=256) # 指定绘图对象宽度和高度
for i in range(8):
plt.subplot(4,2, i + 1) # 2行3列子图
ax = sns.boxplot(x='类型',y=column[i],width=0.8,orient="v",data=data)
#ax = sns.violinplot(x='类型',y=column[i],width=0.8,saturation=0.9,lw=0.8,palette="Set2",orient="v",inner="box",data=data)
plt.xlabel(('银行类型'),fontsize=8)
plt.ylabel(column[i], fontsize=8)
plt.tight_layout()
plt.savefig('银行箱线图.jpg', dpi=256)
plt.show()
可以从上面得到一些结论:
下面对不同的财务指标进行分析:
1.从每股收益来看,国有银行的分布较为集中,并且是每股收益平均值和中位数都比较低。股份制银行,有两个异常点,说明有两个银行他们的每股收益特别大。结论为股份制银行的每股收益要高于城商银行,高于国有银行。
2.从每股净资产上来看,结论与每股收益类似,同样是股份制银行的分布较为分散,并且平均的每股净资产要高于城商银行,高于国有银行。
3.从每股现金流来看,股份制银行有的银行为负现金流,而国有银行的现金流虽然都不高,但是分布非常集中,说明国有的银行的现金流还是比较充沛稳定。
4.从净利润来看,国有银行远远高于股份制银行,高于城商银行。这和我国的国有银行市场占有率有关。
5.从营业总收入来看,同样于净利润,国有银行高于股份制银行高于城商银行。说明国有银行的营业收入和利润都非常高。
6.从总资产上来看,国有银行的总资产是远远高于股份制银行,高于城商银行的,这与我国的国情非常符合。绝大多数人的存款都在国有银行。
7.从净资产收益率来看,国有银行,股份制银行,城商银行的平均收益率差不多,城商银行有一个异常点,并且国国银行的分布更为集中。
8.从总股本来看,国有银行是远远高于股份制银行,高于城商银行的。
从上述分析,我们可以得到如下结论,