期末实验报告:同一行业十家公司不同年份营业收入横向、纵向对比

将"证券行业.xlsx"转换为"证券行业.csv"

对“证券行业.csv”中f_name列进行重命名并进行筛选,保留所需要的年报内容

对f_name列进行匹配重命名

定义"filter_links"函数用于对表格f_name一列进行筛选,保留所需要的年报

定义"sub_with_update"函数,通过该函数对f_name列进行整理,以公司简称分类

根据排列情况,提取年报数量最多的十家公司,并将链接存储于"10companies"文件夹中

根据所形成的"10companies"文件夹,对内部的csv文件进行拆分,形成下载pdf年报的链接

通过提取下载后csv文件里的链接,下载各家公司各个年份的年报pdf文件

为了后续操作简便,已将下载好的pdf文件放到不同的文件夹(手动操作),并进行相应命名,截图如下

通过正则匹配定位年报中主要会计数据——当年的营业收入,提取放入DataFrame

遇到的问题1:需要不断调整正则表达式,写出满足可以匹配所有年报的通用表达式

遇到的问题2:在运行过程中发现"西部证券"公司2015年年报不是text文本无法提取内容。

由于问题2的存在,所以我将"西部证券"公司移出文件夹,后续单独提取该公司各年份的营业收入

单独提取"西部证券"公司的营业收入,放入表格,并将该表格和已获取的9个公司营业收入的表格合并为一个表格

存在的问题3:由于2015年年报不是文本,问了能循环运行程序,将15年年报移出"西部证券"文件夹,获取14,16-20年的营业收入

查看西部证券公司2015年营业收入,形成完整的西部证券公司营业收入的表格,再将表格与原先含有9个公司营收的表格合并,得到所需要的最终表格

通过表格制作营业收入的对比图

以行为单位取营业收入为列表,并将列表中的字符串类型转为浮点型

定义change_type的函数,将营业收入由字符串类型转变为浮点型,并保留两位小数

制图:定义x_ticks函数,由于制作同一公司(十家)不同年份营业收入的对比即纵向对比(柱状图)

纵向对比图

制图:定义y_ticks函数,用于制作不同公司同一年份(2014——2020)营业收入的对比即横向对比(条形图)

横向对比图