1

前言

今天来跟大家分析一下2020年中国500强企业排行榜数据,从不同角度去对数据进行统计分析,可视化展示。

主要分析内容

  1. 中国500强企业-省份分布。

  2. 中国500强企业-营业收入年增率。
  3. 中国500强企业-营业收入年减率。
  4. 中国500强企业-利润年增率。
  5. 中国500强企业-利润年减率。
  6. 中国500强企业-排名上升最快。
  7. 中国500强企业-排名下降最快。
  8. 中国500强企业-资产区间分布。
  9. 中国500强企业-市值区间分布。
  10. 中国500强企业-营业收入区间分布。
  11. 中国500强企业-利润区间分布。
  12. 中国500强企业-排名前10营业收入、利润、资产、市值、股东权益等情况。

下面开始从数据采集到数据统计分析,最后进行可视化!!!

2

数据采集

1.数据源

http://www.fortunechina.com/fortune500/c/2020-07/27/content_369925.htm

2.开始爬取

获取企业列表

url="http://www.fortunechina.com/fortune500/c/2020-07/27/content_369925.htm"
res = requests.get(url,headers=headers)
res.encoding = 'utf-8'
text = res.text

获取企业对应url

for i in range(0,len(table_tr)):try:#name = i.xpath('.//td/a/text()')[0]href = table_tr[i].xpath('.//td/a/@href')[0].replace("../../../../","http://www.fortunechina.com/")column_list = get_detail(href)for k in range(0,len(column_list)):outws.cell(row=count, column=k+1, value=column_list[k])print(count)count = count+1except:pass

获取每一个企业相关数据

name = selector.xpath('//*[@class="comp-name"]/text()')[0]
r1 = selector.xpath('//*[@class="con"]/em[@class="r1"]/text()')[0]
r2 = selector.xpath('//*[@class="con"]/span/em/font[@class="ft-red"]/text()')[0]
address = selector.xpath('//*[@class="info"]/p')[0].xpath('.//text()')[0].replace(" ", "")
table_tbody_tr = selector.xpath('//*[@class="table"]/table/tr')

3.保存到Excel

outwb = openpyxl.Workbook()
outws = outwb.create_sheet(index=0)
outws.cell(row=1, column=1, value="企业名称")
outws.cell(row=1, column=2, value="2020年排名")
outws.cell(row=1, column=3, value="2019年排名")
outws.cell(row=1, column=4, value="总部地址")
outws.cell(row=1, column=5, value="营业收入")
outws.cell(row=1, column=6, value="营业收入年增减")
outws.cell(row=1, column=7, value="利润")
outws.cell(row=1, column=8, value="利润年增减")
outws.cell(row=1, column=9, value="资产")
outws.cell(row=1, column=10, value="市值")
outws.cell(row=1, column=11, value="股东权益")
outwb.save("中国500强排行榜数据.xlsx")  # 保存

数据就已经保存到Excel中,下面开始进行统计分析可视化!

3

可视化分析

1.省份分布

导入相关可视化库

from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.charts import Map
import pandas as pd
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar

统计数据

从excel中中取出:总部地址,然后取出前两位(省份),统计每一个省份的500强分布情况

address = pd_data['总部地址']
address = address.tolist()address_03 = []
for i in address:###取省份(前两位)address_03.append(i[0:2])
data =[]
address_03_set = set(address_03)  #address_03_set是另外一个列表,里面的内容是address_03里面的无重复 项
for item in address_03_set:data.append((item,address_03.count(item)))

地图可视化

def map_china() -> Map:c = (Map().add(series_name="企业数量", data_pair=data, maptype="china",zoom = 1,center=[105,38]).set_global_opts(title_opts=opts.TitleOpts(title="中国500强企业省份分布"),visualmap_opts=opts.VisualMapOpts(max_=9999,is_piecewise=True,pieces=[{"max": 9, "min": 0, "label": "0-9","color":"#FFE4E1"},{"max": 99, "min": 10, "label": "10-99","color":"#FF7F50"},{"max": 499, "min": 100, "label": "100-499","color":"#F08080"},{"max": 999, "min": 500, "label": "500-999","color":"#CD5C5C"},{"max": 9999, "min": 1000, "label": ">=1000", "color":"#8B0000"}])))return c

2.营业收入年增率

从excel中中取出:营业收入年增减,统计增加率最大的前50名和减少率(负数)最大的前50名

income_rate = pd_data['营业收入年增减']
compare_name = pd_data['企业名称']income_rate = income_rate.tolist()
compare_name = compare_name.tolist()
m = income_rate# 求一个list中最大的50个数,并排序
max_number = heapq.nlargest(50, m)
# 最大的2个数对应的,如果用nsmallest则是求最小的数及其索引
max_index = map(m.index, heapq.nlargest(50, m))
# max_index 直接输出来不是数,使用list()或者set()均可输出
#print(set(max_index)) ###{235, 140, 273, 148, 86}
max_index = list(set(max_index))
#ss = [m.index(j) for j in max_number]
name =[compare_name[k] for k in set(max_index)]
outwb = openpyxl.Workbook()
outws = outwb.create_sheet(index=0)

3.营业收入年减率

income_rate = income_rate.tolist()
compare_name = compare_name.tolist()
m = income_rate
# 求一个list中最小的50个数,并排序
min_number = heapq.nsmallest(60, m)
min_index = [m.index(j) for j in min_number]
name =[compare_name[k] for k in set(min_index)]

4.利润年增率

从excel中中取出:利润年增减,统计增加率最大的前50名和减少率(负数)最大的前50名

5.利润年减率

6.排名上升最快20家企业

从excel中中取出:2020年排名和2019年排名,进行对比,统计排名上升最大的前20家企业,和排名下降最大的前20家企业。

###折线图
def LinePic(x_data,y_data,name):(Line()# 进行全局设置.set_global_opts(tooltip_opts=opts.TooltipOpts(is_show=True),  # 显示提示信息,默认为显示,可以不写xaxis_opts=opts.AxisOpts(type_="category"),yaxis_opts=opts.AxisOpts(type_="value",axistick_opts=opts.AxisTickOpts(is_show=True),splitline_opts=opts.SplitLineOpts(is_show=True),),)# 添加x轴的点.add_xaxis(xaxis_data=x_data)# 添加y轴的点.add_yaxis(series_name=name,y_axis=y_data,symbol="emptyCircle",is_symbol_show=True,label_opts=opts.LabelOpts(is_show=True),)# 保存为一个html文件.render(name+".html"))

7.排名下降最快20家企业

8.资产区间分布

从excel中中取出:资产,为9000 间隔进行区间划分,并统计每一个区间的个数。

for k, g in groupby(sorted(assets_list), key=lambda x: x // 90000):name.append(str(k * 90000) + "~" + str((k + 1) * 90000 - 1))dict_value.append(int(len(list(g))))

9.市值区间分布

从excel中中取出:市值,为7000 间隔进行区间划分,并统计每一个区间的个数。

for k, g in groupby(sorted(assets_list), key=lambda x: x // 7000):name.append(str(k * 7000) + "~" + str((k + 1) * 7000 - 1))dict_value.append(int(len(list(g))))

10.营业收入区间分布

从excel中中取出:营业收入,为50000 间隔进行区间划分,并统计每一个区间的个数。

for k, g in groupby(sorted(assets_list), key=lambda x: x // 50000):name.append(str(k * 50000) + "~" + str((k + 1) * 50000 - 1))dict_value.append(int(len(list(g))))

11.利润区间分布

从excel中中取出:    利润,为5000 间隔进行区间划分,并统计每一个区间的个数。

for k, g in groupby(sorted(assets_list), key=lambda x: x//5000):name.append(str(k*5000)+"~"+str((k+1)*5000-1))dict_value.append(int(len(list(g))))

12.中国500强企业-排名前10营业收入、利润、资产、市值、股东权益

从excel中中取出排名前10:   营业收入、利润、资产、市值、股东权益、

name = pd_data['企业名称'][0:11].tolist()
data_1 = pd_data['营业收入'][0:11].tolist()
data_2 = pd_data['利润'][0:11].tolist()
data_3 = pd_data['资产'][0:11].tolist()
data_4 = pd_data['市值'][0:11].tolist()
data_5 = pd_data['股东权益'][0:11].tolist()# 链式调用
c = (Bar(init_opts=opts.InitOpts(  # 初始配置项theme=ThemeType.MACARONS,animation_opts=opts.AnimationOpts(animation_delay=1000, animation_easing="cubicOut"  # 初始动画延迟和缓动效果))).add_xaxis(xaxis_data=name)  # x轴.add_yaxis(series_name="营业收入", yaxis_data=cleardata(data_1))  # y轴.add_yaxis(series_name="利润", yaxis_data=cleardata(data_2))  # y轴.add_yaxis(series_name="资产", yaxis_data=cleardata(data_3))  # y轴.add_yaxis(series_name="市值", yaxis_data=cleardata(data_4))  # y轴.add_yaxis(series_name="股东权益", yaxis_data=cleardata(data_5))  # y轴.set_global_opts(title_opts=opts.TitleOpts(title='', subtitle='排名前10经济情况',  # 标题配置和调整位置title_textstyle_opts=opts.TextStyleOpts(font_family='SimHei', font_size=25, font_weight='bold', color='red',), pos_left="90%", pos_top="10",),xaxis_opts=opts.AxisOpts(name='企业名称', axislabel_opts=opts.LabelOpts(rotate=20)),# 设置x名称和Label rotate解决标签名字过长使用yaxis_opts=opts.AxisOpts(name='单位:百万美元'),).render("2020年中国500强-排名前10名经济情况.html")
)

4

总结

本文主要对以下12个方面进行统计分析,最后绘制可视化图

  1. 中国500强企业-省份分布。

  2. 中国500强企业-营业收入年增率。
  3. 中国500强企业-营业收入年减率。
  4. 中国500强企业-利润年增率。
  5. 中国500强企业-利润年减率。
  6. 中国500强企业-排名上升最快。
  7. 中国500强企业-排名下降最快。
  8. 中国500强企业-资产区间分布。
  9. 中国500强企业-市值区间分布。
  10. 中国500强企业-营业收入区间分布。
  11. 中国500强企业-利润区间分布。
  12. 中国500强企业-排名前10营业收入、利润、资产、市值、股东权益等情况。

可视化分析中国500强排行榜数据后,我发现了...相关推荐

  1. python爬虫,2020年《财富》中国500强排行榜数据爬取源码

    一个简单的demo,python爬虫,其实是以前的存货,很久很久没有写爬虫了,渣渣更渣了啊! 爬取财富中文网,2020年<财富>中国500强排行榜相关数据,数据都在网页源码里,结构也比较清 ...

  2. 中国500强排行榜数据爬取,看看都有哪些大佬

    前言 一个简单的demo,python爬虫,其实是以前的存货,很久很久没有写爬虫了,渣渣更渣了啊! ( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传 ...

  3. 2020年《财富》中国500强排行榜数据爬取,看看都有哪些

    前言 一个简单的demo,python爬虫,其实是以前的存货,很久很久没有写爬虫了,渣渣更渣了啊! 爬取财富中文网,2020年<财富>中国500强排行榜相关数据,数据都在网页源码里,结构也 ...

  4. 【Python实战】Python对中国500强排行榜数据进行可视化分析

    目录

  5. 2013年中国500强排行榜(公司名单及网址)

    2013年中国500强排行榜(公司名单) (数据来源于:财富中文网) 排名 公司名称 公司网址 1 中国石油化工股份有限公司 www.sinopec.com 2 中国石油天然气股份有限公司 www.p ...

  6. 2013年中国500强排行榜(zz)

    2013年中国500强排行榜 排名 上年 排名 公司名称 (中文) 营业收入 (百万元) 利润 (百万元) 总部 所在 1 1 中国石油化工股份有限公司 2786045 63496 北京市 2 2 中 ...

  7. 2022年中国500强排行榜

    刚刚,2022年度 <财富>中国500强发布 上榜的中国上市公司 总营业收入达到62万亿元RMB 中石油.中石化.中国建筑位列前三 完整榜单如下 *本排行榜覆盖范围包括在中国境内外上市的所 ...

  8. 2018年中国500强排行榜

    原文http://www.fortunechina.com/fortune500/c/2018-07/10/content_309961.htm 1 1 中国石油化工股份有限公司 2360193.0 ...

  9. 2012年7月发布的中国企业500强排行榜名单

    7月13日上午消息,<财富>中文版今日发布2012年中国500强排行榜,中石化蝉联榜首.中石油及中国移动位居第2.3名.此外,中国500强收入占GDP的比例继续升高:中国工商银行首次冲入前 ...

最新文章

  1. gdb图形化调试工具总结
  2. android实现计算器功能吗,利用Android实现一个简单的计算器功能
  3. 一文读懂支持向量积核函数(附公式)
  4. Symantec(VeriSign)SSL证书
  5. gis 路径拟合算法_决策树算法十问及经典面试问题
  6. linux c用open打开(创建)一个文件
  7. 带字母的计算机在线使用,ASCII,进位制在线转换工具
  8. 用OpenCV实现Otsu算法
  9. .eslintrc.js相关配置
  10. Producer API
  11. MATLAB神经网络训练结果各参数解释
  12. 中科大计算机考研录取分数线_中科大计算机考研 | 跨考CS上岸经验分享!
  13. 计算机考研a区院校,这些985院校没有A+学科!985院校的哪些专业在C+之下?
  14. BT种子/磁力/eD2K,P2P和各种下载协议
  15. 遇见狂神说HTML笔记1
  16. 途志分享几个抖音短视频拍摄技巧
  17. Dynamic Web Project介绍及创建
  18. java动态代理(AOP)
  19. Excel如何批量添加同一批注
  20. elasticsearch线上调优[ Data too large]

热门文章

  1. 战'疫'逆战学习总结分享
  2. 新能源汽车行业资讯-2022-9-15
  3. 程序化自动生成视频实现Youtube掘金
  4. python modbus tk 库_python modbus_tk库 学习记录
  5. An Investigation of Linguistic Features and Clustering Algorithms for Topical Document Clustering
  6. 计算机专业考注册测绘师经验,测绘工程专业就业前景怎么样,武汉大学学子告诉你...
  7. C#操作IIS的代码
  8. 学生上课考勤系统jsp_高校学生考勤管理系统JSP+SQL
  9. 几种Java序列化方式的实现
  10. 初探Android系统打印功能