首页 > 编程语言 >【Python】企业排名、地域分布与词云分析可视化

【Python】企业排名、地域分布与词云分析可视化

时间:2024-09-02 19:21:27浏览次数:18  
标签:tolist bar Python 可视化 result 词云 data opts 五百强

目录

数据处理

Pyecharts

各国数量

分布地图

数量占比

城市分布

营业收入

利润转化


数据处理

2021世界五百强企业数据,包含公司名称、公司链接、营业收入(百万美元)、利润(百万美元)、国家等信息。数据集下载:Python企业排名、地域分布与词云分析数据集资源-CSDN文库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data_path = "./2021世界五百强.xlsx"
df = pd.read_excel(data_path, index_col='排名')
df.head()

 查看缺失情况

data.isnull().sum()

 

若缺失较大可通过插值法填充 

data = data.interpolate()

查看数据形状

data.shape

 

 查看数据类型

data.dtypes

 

 查看数据是否有重复值

data.duplicated().sum()

Pyecharts

Pyecharts库是一个功能强大、易于使用的Python数据可视化库,它基于ECharts(一个使用JavaScript实现的开源可视化库)的强大功能,为Python开发者提供了一套简单易用的接口。通过Pyecharts,用户可以轻松创建出丰富多样的交互式图表,满足不同场景下的数据可视化需求。

类型丰富:Pyecharts支持多种常用的图表类型,包括但不限于折线图、柱状图、散点图、饼图、地图、热力图、雷达图、箱形图、K线图等,能够满足不同场景下的数据可视化需求。

高度定制:用户可以自定义图表的各项属性,如颜色、标题、标签、提示框、图例等,使得生成的图表更符合个人或项目的需求。

易于集成:Pyecharts生成的图表可以直接嵌入到网页中,也可以导出为HTML文件或图片,便于与其他系统进行集成和分享。

简洁API:Pyecharts提供了简洁易用的API接口,使得用户可以通过少量的代码就能生成复杂的图表。此外,它还支持链式调用和函数式调用两种方式,进一步简化了代码编写过程。

多种格式:Pyecharts支持多种数据格式,包括CSV、JSON、pandas数据框等,可以方便地处理来自不同数据源的数据。

交互操作:Pyecharts生成的图表支持交互式操作,如鼠标滚轮缩放、拖拽平移、数据区域选择等,增强了图表的可用性和用户体验。

各国数量

使用Pyecharts库来创建一个条形图(Bar Chart),并在Jupyter Notebook中渲染它。Pyecharts是一个用于生成Echarts图表的Python库,而Echarts是一个使用JavaScript实现的开源可视化库,可以流畅地运行在PC和移动设备上,兼容当前绝大多数浏览器(IE,Chrome, Firefox,Safari等)

result = data['国家'].value_counts().sort_values()
x_data = result.index.tolist()
y_data = result.values.tolist()
bar = Bar(init_opts=opts.InitOpts(width = '900px',height = '900px'))
bar.add_xaxis(x_data)
bar.add_yaxis('',y_data)
bar.reversal_axis()
bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
bar.render_notebook()

 可视化结果表明,在世界五百强企业分布情况中,中国和美国属于第一梯队,日本、德国、法国、英国等相对位于下一梯队。

 

分布地图

可通过pyecharts.charts中的世界地图库绘制地域分布地图,绘制地图时,受限于地图标注语言,需先设置好世界地图中英文名称的映射关系

nameMap = {
        'Singapore Rep.':'新加坡',
        'Dominican Rep.':'多米尼加',
        'Palestine':'巴勒斯坦',
        'Bahamas':'巴哈马',
        'Timor-Leste':'东帝汶',
        'Afghanistan':'阿富汗',
        'Guinea-Bissau':'几内亚比绍',
        "Côte d'Ivoire":'科特迪瓦',
        'Siachen Glacier':'锡亚琴冰川',
        "Br. Indian Ocean Ter.":'英属印度洋领土',
        'Angola':'安哥拉',
        'Albania':'阿尔巴尼亚',
        'United Arab Emirates':'阿联酋',
        'Argentina':'阿根廷',
        'Armenia':'亚美尼亚',
        'French Southern and Antarctic Lands':'法属南半球和南极领地',
        'Australia':'澳大利亚',
        'Austria':'奥地利',
        'Azerbaijan':'阿塞拜疆',
        'Burundi':'布隆迪',
        'Belgium':'比利时',
        'Benin':'贝宁',
        'Burkina Faso':'布基纳法索',
        'Bangladesh':'孟加拉国',
        'Bulgaria':'保加利亚',
        'The Bahamas':'巴哈马',
        'Bosnia and Herz.':'波斯尼亚和黑塞哥维那',
        'Belarus':'白俄罗斯',
        'Belize':'伯利兹',
        'Bermuda':'百慕大',
        'Bolivia':'玻利维亚',
        'Brazil':'巴西',
        'Brunei':'文莱',
        'Bhutan':'不丹',
        'Botswana':'博茨瓦纳',
        'Central African Rep.':'中非',
        'Canada':'加拿大',
        'Switzerland':'瑞士',
        'Chile':'智利',
        'China':'中国',
        'Ivory Coast':'象牙海岸',
        'Cameroon':'喀麦隆',
        'Dem. Rep. Congo':'刚果民主共和国',
        'Congo':'刚果',
        'Colombia':'哥伦比亚',
        'Costa Rica':'哥斯达黎加',
        'Cuba':'古巴',
        'N. Cyprus':'北塞浦路斯',
        'Cyprus':'塞浦路斯',
        'Czech Rep.':'捷克',
        'Germany':'德国',
        'Djibouti':'吉布提',
        'Denmark':'丹麦',
        'Algeria':'阿尔及利亚',
        'Ecuador':'厄瓜多尔',
        'Egypt':'埃及',
        'Eritrea':'厄立特里亚',
        'Spain':'西班牙',
        'Estonia':'爱沙尼亚',
        'Ethiopia':'埃塞俄比亚',
        'Finland':'芬兰',
        'Fiji':'斐',
        'Falkland Islands':'福克兰群岛',
        'France':'法国',
        'Gabon':'加蓬',
        'United Kingdom':'英国',
        'Georgia':'格鲁吉亚',
        'Ghana':'加纳',
        'Guinea':'几内亚',
        'Gambia':'冈比亚',
        'Guinea Bissau':'几内亚比绍',
        'Eq. Guinea':'赤道几内亚',
        'Greece':'希腊',
        'Greenland':'格陵兰',
        'Guatemala':'危地马拉',
        'French Guiana':'法属圭亚那',
        'Guyana':'圭亚那',
        'Honduras':'洪都拉斯',
        'Croatia':'克罗地亚',
        'Haiti':'海地',
        'Hungary':'匈牙利',
        'Indonesia':'印度尼西亚',
        'India':'印度',
        'Ireland':'爱尔兰',
        'Iran':'伊朗',
        'Iraq':'伊拉克',
        'Iceland':'冰岛',
        'Israel':'以色列',
        'Italy':'意大利',
        'Jamaica':'牙买加',
        'Jordan':'约旦',
        'Japan':'日本',
        'Japan':'日本本土',
        'Kazakhstan':'哈萨克斯坦',
        'Kenya':'肯尼亚',
        'Kyrgyzstan':'吉尔吉斯斯坦',
        'Cambodia':'柬埔寨',
        'Korea':'韩国',
        'Kosovo':'科索沃',
        'Kuwait':'科威特',
        'Lao PDR':'老挝',
        'Lebanon':'黎巴嫩',
        'Liberia':'利比里亚',
        'Libya':'利比亚',
        'Sri Lanka':'斯里兰卡',
        'Lesotho':'莱索托',
        'Lithuania':'立陶宛',
        'Luxembourg':'卢森堡',
        'Latvia':'拉脱维亚',
        'Morocco':'摩洛哥',
        'Moldova':'摩尔多瓦',
        'Madagascar':'马达加斯加',
        'Mexico':'墨西哥',
        'Macedonia':'马其顿',
        'Mali':'马里',
        'Myanmar':'缅甸',
        'Montenegro':'黑山',
        'Mongolia':'蒙古',
        'Mozambique':'莫桑比克',
        'Mauritania':'毛里塔尼亚',
        'Malawi':'马拉维',
        'Malaysia':'马来西亚',
        'Namibia':'纳米比亚',
        'New Caledonia':'新喀里多尼亚',
        'Niger':'尼日尔',
        'Nigeria':'尼日利亚',
        'Nicaragua':'尼加拉瓜',
        'Netherlands':'荷兰',
        'Norway':'挪威',
        'Nepal':'尼泊尔',
        'New Zealand':'新西兰',
        'Oman':'阿曼',
        'Pakistan':'巴基斯坦',
        'Panama':'巴拿马',
        'Peru':'秘鲁',
        'Philippines':'菲律宾',
        'Papua New Guinea':'巴布亚新几内亚',
        'Poland':'波兰',
        'Puerto Rico':'波多黎各',
        'Dem. Rep. Korea':'朝鲜',
        'Portugal':'葡萄牙',
        'Paraguay':'巴拉圭',
        'Qatar':'卡塔尔',
        'Romania':'罗马尼亚',
        'Russia':'俄罗斯',
        'Rwanda':'卢旺达',
        'W. Sahara':'西撒哈拉',
        'Saudi Arabia':'沙特阿拉伯',
        'Sudan':'苏丹',
        'S. Sudan':'南苏丹',
        'Senegal':'塞内加尔',
        'Solomon Is.':'所罗门群岛',
        'Sierra Leone':'塞拉利昂',
        'El Salvador':'萨尔瓦多',
        'Somaliland':'索马里兰',
        'Somalia':'索马里',
        'Serbia':'塞尔维亚',
        'Suriname':'苏里南',
        'Slovakia':'斯洛伐克',
        'Slovenia':'斯洛文尼亚',
        'Sweden':'瑞典',
        'Swaziland':'斯威士兰',
        'Syria':'叙利亚',
        'Chad':'乍得',
        'Togo':'多哥',
        'Thailand':'泰国',
        'Tajikistan':'塔吉克斯坦',
        'Turkmenistan':'土库曼斯坦',
        'East Timor':'东帝汶',
        'Trinidad and Tobago':'特里尼达和多巴哥',
        'Tunisia':'突尼斯',
        'Turkey':'土耳其',
        'Tanzania':'坦桑尼亚',
        'Uganda':'乌干达',
        'Ukraine':'乌克兰',
        'Uruguay':'乌拉圭',
        'United States':'美国',
        'Uzbekistan':'乌兹别克斯坦',
        'Venezuela':'委内瑞拉',
        'Vietnam':'越南',
        'Vanuatu':'瓦努阿图',
        'West Bank':'西岸',
        'Yemen':'也门',
        'South Africa':'南非',
        'Zambia':'赞比亚',
        'Zimbabwe':'津巴布韦'
    }

使用Pyecharts库来创建一个世界地图,绘制可视化可交互的世界五百强企业地域分布地图 

from pyecharts import options as opts
from pyecharts.charts import Bar,Map,WordCloud,Grid,Pie
x_data = data['国家'].value_counts().index.tolist()
y_data = data['国家'].value_counts().values.tolist()
map1 = Map()
map1.add('',[list(z) for z in zip(x_data, y_data)], maptype='world',is_map_symbol_show=False, name_map = nameMap) 
map1.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
map1.set_global_opts(title_opts=opts.TitleOpts(title='世界五百强企业分布'),visualmap_opts=opts.VisualMapOpts( max_=data['国家'].value_counts().max(),min_ = data['国家'].value_counts().min(),is_piecewise=False),)
map1.render_notebook()

可视化结果表明,亚洲和北美地区世界五百强企业集中较为明显,非洲、南美等地资源相对弱势。

数量占比

使用Pyecharts库创建饼图Pie chart,展示2021年各国进入世界500强的企业数量的百分比

c = (
    Pie(init_opts=opts.InitOpts(width= '1000px',height= '600px'))
    .add(
    '',
    [list(z) for z in zip(result.index.tolist(),result.values.tolist())],
        radius=["30%", "75%"],
        rosetype="area",
    label_opts = opts.LabelOpts(position='right'),
    )
    .set_global_opts(
    title_opts=opts.TitleOpts(title='2021年各国进入500强的企业数量百分比'),
    legend_opts=opts.LegendOpts(is_show=False),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
)
c.render_notebook()

根据可视化结果,可见2021年世界五百强企业名单中中国、美国两国占据超过百分之五十份额,美国、日本、德国逐一减半,世界五百强企业体量占比差距较为悬殊。

城市分布

展示一个条形图,以中国为例,描绘在中国各城市中进入世界500强企业的数量分布情况

data['城市'] = data['字段2'].str.split('(').str[0]
result = data[data['国家']=='中国']
result = result['城市'].value_counts()
x_data = result.index.tolist()
y_data = result.values.tolist()
bar = Bar(init_opts=opts.InitOpts(width = '1000px',height = '500px'))
bar.add_xaxis(x_data)
bar.add_yaxis('',y_data)
bar.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=75)),title_opts=opts.TitleOpts(title="500强企业在中国各城市的数量"))
bar.render_notebook()

可视化结果表明,中国各城市在五百强企业分布上呈现出明显的层级结构。其中,北京以其独特的地理位置、政策优势及经济活力,成为了中国国内五百强企业最为集中的城市,展现出显著的集聚效应。紧随其后的是由香港、上海、深圳和杭州构成的第二梯队,这些城市同样凭借其强大的经济实力、完善的产业体系和创新能力,吸引了大量五百强企业的入驻,形成了较为密集的企业集群。

这一分布格局不仅揭示了不同城市在吸引和培育五百强企业方面的能力和成效,也反映了中国经济在不同区域间的差异化和协同发展态势。同时,这种聚集态势与资源虹吸现象也进一步加剧了城市间的竞争与合作,可能蕴含全国范围内经济结构的优化和升级趋势。

营业收入

将两个列表(公司名称和营业收入)组合使用,使用WordCloud生成词云

x_data = data['公司名称(中文)'].str.split('(').str[0].tolist()
y_data = data['营业收入(百万美元)'].tolist()
wd = WordCloud()
wd.add('', [list(z) for z in zip(x_data, y_data)],shape = 'diamond',emphasis_shadow_color = '#FF7F00')
wd.render_notebook()

生成的可视化数据显示,世界五百强企业的营业收入呈现出显著的差异,这种差异不仅体现了行业内巨头企业与新兴或中小型产业代表之间的鲜明对比,还深刻揭示了不同经济领域之间市场规模的差异性。具体而言,世界五百强企业包括相关领域巨头和相关领域新型产业代表,巨头企业以其庞大的营业收入占据了行业的主导地位,而新兴产业的代表企业则展示了该领域的发展潜力与活力。这可能是对部分领域的市场规模和整体经济结构的一种直观反映。

利润转化

筛选出前10家公司的名称、营业收入和利润,对数据进行清洗,并在一个条形图中同时展示这些公司的名称、营业收入和利润,最后将图表渲染到Jupyter Notebook中。

result = data[['公司名称(中文)','营业收入(百万美元)','利润(百万美元)']][:10].sort_values('营业收入(百万美元)')
result['公司名称(中文)'] = result['公司名称(中文)'].str.split('(').str[0]
result['利润(百万美元)'] = result['利润(百万美元)'].str.replace(',','').astype('float')
x_data = result['公司名称(中文)'].tolist()
y_data = result['利润(百万美元)'].tolist()
grid = Grid()
bar = Bar()
bar.add_xaxis(result['公司名称(中文)'].tolist())
bar.add_yaxis('营业收入(百万美元)',result['营业收入(百万美元)'].tolist())
bar.add_yaxis('利润(百万美元)',result['利润(百万美元)'].tolist())
bar.reversal_axis()
bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
bar.set_global_opts(title_opts=opts.TitleOpts(title="十强利润(百万美元)"))
grid.add(bar,grid_opts = opts.GridOpts(pos_left="20%"))
grid.render_notebook()

生成的可视化数据显示,按照营业收入得到的十强企业中,利润表现同样存在显著的差距。特别值得注意的是,以苹果公司为代表的高新技术企业在这一群体中脱颖而出,展现了极高的利润率。这一趋势不仅凸显了高新技术企业在全球市场竞争中的优势地位,也进一步印证了技术创新与高效运营对于提升企业盈利能力的重要性。

标签:tolist,bar,Python,可视化,result,词云,data,opts,五百强
From: https://blog.csdn.net/weixin_73404807/article/details/141821038

相关文章

  • 【Python机器学习】卷积神经网络(CNN)——语义理解
    无论是人类还是机器,理解隐藏在文字背后的意图,对于倾听者或阅读者来说的,都是一项重要的技能。除了理解单个词的含义,词之间还有各种各样巧妙的组合方式。词的性质和奥妙与词之间的关系密切相关。这种关系至少有两种表达方式:词序词的临近度这些关系的模式以及词本身存在的模式......
  • 在Python中如何执行语句?
    Python是一种高级编程语言,具有简洁、易读的语法结构,广泛应用于数据分析、机器学习、web开发、人工智能、游戏开发等领域。而在Python中,语句是构建程序的基本单元,通过语句来实现具体的功能操作,那么Python如何执行语句?具体请看下文。Python使用以下方法来执行语句:1、解......
  • 学习Python多久才能入门?
    转行学习编程,Python语言是大多数人的首要选择。因为它不仅在web开发、游戏开发、数据分析、网络爬虫等领域有着优异的表现,更是人工智能和机器学习的首选语言,那么学会Python大概需要多久?我们一起来看看吧。学习Python所需的时间取决个人的学习速度、学习目标和学习方式。......
  • 学习笔记 — TCGA 差异表达分析及可视化
    一、TCGA数据下载(LIHC为例)数据下载的方式和之前学习的临床数据的下载类似,先进入官网 https://portal.gdc.cancer.gov/新版TCGA数据库下载流程:CohortBuilder→Program(TCGA)、Project(LIHC)→点击Repository→侧边栏筛选:ExperimentalStrategy(RNA-Seq) →D......
  • 人员拥挤检测系统 Python
    人员拥挤检测系统通过Python网络模型算法技术,人员拥挤检测算法对校园/厂区/车间/港口/街道等场景的监控画面区域实现7X24小时全天候不间断进行自动分析监测,当人员拥挤检测算法监测到现场区域范围内,有异常的人群聚集(出现拥挤情况)时,人员拥挤检测算法会立刻抓拍存档并通知相关后台人员......
  • 一篇文章让你彻底掌握 Python,建议收藏!
    写在前面:如果你对Python感兴趣的话,可以试试我整理的这一份全套的Python学习资料,【点击这里】免费领取!目录解释器注释数据类型操作符算术运算符比较运算符赋值运算符位运算符逻辑运算符成员运算符身份运算符运算符优先级控制语句条件语句循环语句whilefor......
  • Python大数据之Hadoop学习——day07_Hive分区表和分桶表
    目录一.分区表一级分区多级分区分区操作hadoop_hive文档二.分桶表基础分桶表:分桶表排序:分区表和分桶表区别一.分区表分区表特点:需要产生分区目录,查询的时候使用分区字段筛选数据,避免全表扫描,替身查询效率 效率上:如果分区表,在查询数据的时候没有分区字段去筛......
  • Allen基因图谱:python Aabgen的安装
    1.abagen使用教程的官方链接:abagen:AtoolboxfortheAllenBrainAtlasgeneticsdata—abagen0.1.3-doc+0.g2aeab5b.dirtydocumentation2.在安装abagen之前先提前安装好一下的包window系统操作步骤:(1)安装好python(假如安装在E盘,E:\python\)(2)win+R打开任务管理器,输入......
  • 基于python+flask框架的基于移动端的疫情环境下大学生心理服务平台(开题+程序+论文) 计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球疫情的持续蔓延,大学生群体作为社会的重要组成部分,其心理健康问题日益凸显。疫情期间,校园封闭管理、线上学习模式的转变、社交活动......
  • 基于python+flask框架的企业内部通讯系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着企业规模的日益扩大和业务的全球化发展,企业内部沟通的高效性与及时性成为了影响企业运营效率与团队协作的关键因素。传统的沟通方式如......