Python数据分析案例19——上市银行财务指标对比
我代码栏目都是针对基础的python数据分析人群,比如想写个本科毕业论文,课程论文,做个简单的案例分析等。过去写的案例可能使用了过多的机器学习和深度学习方法,文科的同学看不懂,可能他们仅仅只想用python做个回归或者画个图。本期开始我会更新一些简单的案例,适合经济新闻等人文社科领域的案例。
(当然后面还会有适合硕士写论文的模型案例,高级模型,组合模型,混合模型等。)
案例背景:
本次背景是对不同类型的上市银行公司的财务指标进行对比。主要是对上市银行中的三大类:国有银行,股份制银行,城市商业银行。
财务指标主要有:
['每股收益(元)','每股净资产(元)','每股现金流(元)', '净利润(元)','营业总收入(元)', '总资产(元)','净资产收益率','总股本(股)']
一、研究设计
1.1样本数据来源
本文的数据来源于同花顺,本文选取了2022年第一季度的32家上市银行的重要的财务报告数据。并且将银行分为国有银行,股份制银行,城市商业银行三大类,进行描述性统计分析,对比不同类型银行的财务数据的不同,得出结论与观点。
数据长这个样子:
1.2变量公司选择
选用的重要的财务数据有——'每股收益(元)','每股净资产(元)','每股现金流(元)','净利润(亿元)','营业总收入(亿元)','总资产(亿元)','净资产收益率','总股本(亿股)'。
选取的32家银行分为三类银行,如下表所示:
股票简称 | 类型 | 股票简称 | 类型 |
建设银行 | 国有银行 | 宁波银行 | 城商银行 |
交通银行 | 国有银行 | 成都银行 | 城商银行 |
邮储银行 | 国有银行 | 杭州银行 | 城商银行 |
工商银行 | 国有银行 | 南京银行 | 城商银行 |
农业银行 | 国有银行 | 长沙银行 | 城商银行 |
中国银行 | 国有银行 | 贵阳银行 | 城商银行 |
招商银行 | 股份制银行 | 重庆银行 | 城商银行 |
兴业银行 | 股份制银行 | 上海银行 | 城商银行 |
浦发银行 | 股份制银行 | 江苏银行 | 城商银行 |
平安银行 | 股份制银行 | 北京银行 | 城商银行 |
中信银行 | 股份制银行 | 苏州银行 | 城商银行 |
民生银行 | 股份制银行 | 厦门银行 | 城商银行 |
华夏银行 | 股份制银行 | 齐鲁银行 | 城商银行 |
浙商银行 | 股份制银行 | 青岛银行 | 城商银行 |
光大银行 | 股份制银行 | 郑州银行 | 城商银行 |
西安银行 | 城商银行 | ||
兰州银行 | 城商银行 |
二、实证研究
首先利用Excel画出三维百分比柱状堆积图,如下: (excel里面画图就不用教了吧....)
如图,我们可以看到数据分布的一些特点,比如每股现金流可能为负数。并且不同的银行他们的每项财务指标都各有各自的特点,下面进一步计算。
开始用python计算会简便一些。
先导入包:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as snsplt.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.从总股本来看,国有银行是远远高于股份制银行,高于城商银行的。
三、结论
从上述分析,我们可以得到如下结论,
- 国有银行在总资产和股本,还有营业收入和利润上都远远高于股份制银行和城商银行,这与我国的国情也非常符合绝大多数的人的存款都在国有银行里面,国有银行的市场占有份额特别高。
- 从净资产收益率和每股现金流上来看,国有银行和股份制银行还有城商银行平均值都差不多,并且国有银行的分布更为集中,说明他们的资产收益率,还有每股现金流更加稳定。
- 从每股收益和每股净资产来看的话,股份制银行是大于城商银行大于国有银行的。说明从证券投资的角度来看,应该是优先投资于股份制银行。
相关文章:

Python数据分析案例19——上市银行财务指标对比
我代码栏目都是针对基础的python数据分析人群,比如想写个本科毕业论文,课程论文,做个简单的案例分析等。过去写的案例可能使用了过多的机器学习和深度学习方法,文科的同学看不懂,可能他们仅仅只想用python做个回归或者…...
Python 中错误 ConnectionError: Max retries exceeded with url
出现错误“ConnectionError: Max retries exceeded with url”有多种原因: 向 request.get() 方法传递了不正确或不完整的 URL。我们正受到 API 的速率限制。requests 无法验证您向其发出请求的网站的 SSL 证书。 确保我们指定了正确且完整的 URL 和路径。 # ⛔️…...

SpringBoot下的Spring框架学习(Tedu)——DAY02
SpringBoot下的Spring框架学习(Tedu)——DAY02 目录SpringBoot下的Spring框架学习(Tedu)——DAY02Spring框架学习1.1 Spring介绍1.2 知识铺垫1.2.1 编辑Dog类1.2.2 编辑Cat类1.2.3 编辑测试类User.java1.2.4 上述代码的总结1.3 面…...
容易混淆的点:C语言中char* a[] 与 char a[] 的区别以及各自的用法
char* a[] 和 char a[] 的区别 char* a[] 和 char a[] 是 C 语言中数组的不同声明方式,二者具有以下区别: char a[] 声明的是一个字符数组,其中存储的是一串字符。此时,a 可以被视为一个指向字符的指针。 char* a[]则声明了一个…...

认识Spring(下)
作者:~小明学编程 文章专栏:Spring框架 格言:热爱编程的,终将被编程所厚爱。 目录 Spring更加高效的读取和存储对象 存储bean对象 五大注解 关于五大类注解 对象的注入 属性注入 构造方法注入 Setter注入 三种注入方式的…...
Educational Codeforces Round 144 (Rated for Div. 2) C - Maximum Set
传送门 题意: 对于一个集合,如果它的任意两个元素都能 有 其中一个能整除另一个,那么它是好的。问在区间[L,R] 中由这个区间某些数内构成的好的集合的最长长度是多少,以及且满足这个长度的好集合有多少个。(懒得想就借…...

学python的第四天---基础(2)
一、三角形类型读入数组并排序的方法nlist(map(float,input().split())) c,b,asorted(n)list_1 list(map(float, input().split())) list_1.sort() list_1.reverse()lengthssorted(map(float,input().split(" ")),reverseTrue)二、动物写法一:d{" &…...

spring之refresh流程-Java八股面试(六)
系列文章目录 第一章 ArrayList-Java八股面试(一) 第二章 HashMap-Java八股面试(二) 第三章 单例模式-Java八股面试(三) 第四章 线程池和Volatile关键字-Java八股面试(四) 第五章ConcurrentHashMap-Java八股面试(五) 动态每日更新算法题,想要学习的可以关注一下…...

【C语言】刷题|链表|双指针|指针|多指针|数据结构
主页:114514的代码大冒 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 一、移除链表元素 二、反转链表 三,链表的中间结点 四&…...

糖化学类854262-01-4,Propargyl α-D-Mannopyranoside,炔丙基 α-D-吡喃甘露糖苷
外观以及性质:Propargyl α-D-Mannopyranoside一般为白色粉末状,糖化学类产品比较多,一般包括:葡萄糖衍生物、葡萄糖醛酸衍生物,氨基甘露糖衍生物、半乳糖衍生物、氨基半乳糖衍生物、核糖衍生物、阿拉伯糖衍生物、唾液…...

项目管理工具DHTMLX 在 G2 排名中再创新高
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…...

28 位委员出席,龙蜥社区第 15 次运营委员会会议顺利召开
2 月 24 日,龙蜥社区在海光召开了第 15 次运营委员会会议,本次会议由统信软件运营委员会委员崔开主持。来自 Arm、阿里云、飞腾、红旗软件、海光、Intel、龙芯、联通软研院、浪潮信息、普华基础软件、统信软件、万里红、移动、中科方德等理事单位的 28 位…...

自然语言处理-基于预训练模型的方法-chapter3基础工具集与常用数据集
文章目录3.1NLTK工具集3.1.1常用语料库和词典资源3.1.2常见自然语言处理工具集3.2LTP工具集3.3pytorch基础3.3.1张量基本概念3.3.2张量基本运算3.3.3自动微分3.3.4调整张量形状3.3.5广播机制3.3.6索引与切片3.3.7降维与升维3.4大规模预训练模型3.1NLTK工具集 3.1.1常用语料库和…...
【SpringMVC】@RequestMapping
RequestMapping注解 1、RequestMapping注解的功能 从注解名称上我们可以看到,RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处…...

【深度学习】BERT变体—SpanBERT
SpanBERT出自Facebook,就是在BERT的基础上,针对预测spans of text的任务,在预训练阶段做了特定的优化,它可以用于span-based pretraining。这里的Span翻译为“片段”,表示一片连续的单词。SpanBERT最常用于需要预测文本…...
根据身高体重计算某个人的BMI值--课后程序(Python程序开发案例教程-黑马程序员编著-第3章-课后作业)
实例3:根据身高体重计算某个人的BMI值 BMI又称为身体质量指数,它是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。我国制定的BMI的分类标准如表1所示。 表1 BMI的分类 BMI 分类 <18.5 过轻 18.5 < BMI < 23.9 正常 24 < BM…...
高并发编程JUC之进程与线程高并发编程JUC之进程与线程
1.准备 pom.xml 依赖如下: <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target&g…...

css基础
1-css引入方式内嵌式style(学习)<style>p {height: 200;}</style>外联式link(实际开发)<link rel"stylesheet" href"./2-my.css">2-选择器2.1标签选择器(标签名相同的都生效&am…...

Unity - 搬砖日志 - BRP 管线下的自定义阴影尺寸(脱离ProjectSettings/Quality/ShadowResolution设置)
文章目录环境原因解决CSharp 脚本效果预览 - Light.shadowCustomResolution效果预览 - Using Quality Settings应用ControlLightShadowResolution.cs ComponentTools Batching add the Component to all LightReferences环境 Unity : 2020.3.37f1 Pipeline : BRP 原因 (好久没…...

如何在SSMS中生成和保存估计或实际执行计划
在引擎数据库执行查询时执行的过程的步骤由称为查询计划的一组指令描述。查询计划在SQL Server中也称为SQL Server执行计划,我们可以通过以下步骤来生成和保存估计或实际执行计划。 估计执行计划和实际执行计划是两种执行计划: 实际执行计划:当执行查询时,实际执行计划出…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...