1. 背景介绍
前不久,朋友发给我两张图片(如下) ,图片中是表格形式的数据,包含了 最新中国上市公司市值500强
的那些公司。 想要分析这些数据,首先就要想到如何获取到图片中的这些数据。当然我这里,借用的是百度的 表格识别api
。 然而,这里又出现一个问题,虽是500行数据,但是就两张图片,每一张就超级大,无法识别。于是,考虑在识别图片表格数据之前,先对图片进行切分。 整个 获取图片表格数据
的思路就是这样,咱们直接上代码吧! 图片切分 下面切分算法,以每张图860像素为基准进行切分,不是开头的,图片上面补25个像素,保证每个单元格都完整出现在每张图片里。 import mathfrom PIL import Image img = Image.open("500强.png" ) w, h = img.size height = 860 r = math.ceil(h/height) img_splits = []for i in range(r): start = height * i end = height * (i + 1 ) if end > h: end = h if i != 0 : start -= 25 box = (0 , start, w, end) img_split = img.crop(box) print(i) display(img_split) img_splits.append(img_split)图片表格数据识别 https://ai.baidu.com/tech/ocr_others/table 最主要就是: 注册百度AI账号,创建应用后在应用列表里获取ak和sk。import pandas as pd request_url = f"https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request?access_token={access_token} " headers = {'content-type' : 'application/x-www-form-urlencoded' } base64_str = image_to_base64(img_splits[0 ]) params = {"image" : base64_str, "is_sync" : "true" , "request_type" : "excel" } json_data = requests.post(request_url, data=params, headers=headers).json() df = pd.read_excel(excel_url, header=None ) df上面只是其中一张图片,接着需要对所有图片分别进行识别,做一个数据拼接,即可得到最终的数据。 2. 数据分析 7月1日,万得2021上半年中国上市企业市值 500 强榜单正式公开发布,统计时间截止2021年6月30日。 基本信息统计 本次编制的500强,入围门槛为市值492亿元 (公司简称"知乎") ,市值最大的为46626亿元 (公司简称"腾讯控股") ,500强上市公司总市值约98.78万亿。 万亿市值公司都在哪些? 从结果中可以看到,在500强榜单中,有13家万亿市值公司。
根据榜单数据显示: 这13家万亿市值公司,分别是腾讯控股、阿里、台积电、贵州茅台、工商银行、美团、招商银行、建设银行、宁德时代、中国平安、五粮液、农业银行、拼多多。我们又分别按照地域分组,发现在这13家万亿市值公司中, 北京有4家 (工行、美团、建行、农行), 广东(深圳)有3家 (腾讯、招行、中国平安), 上海1家 (拼多多), 浙江1家 (阿里), 台湾1家 (台积电), 贵州1家 (茅台), 福建1家 (宁德时代), 四川1家 (五粮液)。 宁德时代 是指宁德时代新能源科技股份有限公司,这是一个位于三四线城市的小企业。宁德时代创办于2011年,凭借新能源汽车热潮,仅用六年的时间就坐上全球新能源电池第一供应商的“龙头椅” 。千亿市值公司都在哪些? 从结果中可以看到,在500强榜单中,有254家千亿市值公司。 我们分别按照地域分组,发现在这254家千亿市值公司中, 北京59家 、 广东40家 、 香港27家 , 上海25家 、 深圳24家 、 台湾19家 ...... 对于不同城市的上市公司,我这里也为大家总了一个简单的统计, 数据如下图所示 。 注明: 这里无法一次性显示完整,我为大家导出了Excel,需要的朋友,可以私信我。中国上市公司500强分布地图 观察地图,可以发现北京、广东、上海、香港、台湾、浙江的上市公司较多,而有些城市,像黑龙江、甘肃、青海、西藏、广西、海南没有一个上市公司。 中国上市公司500强行业词云图 我们按照行业分组,分别对行业数据做一个词云图统计,发现电子、医药生物、信息技术、房地产、银行、汽车、证券经纪等行业较多。
相关阅读: