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

目录

数据处理

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()

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

相关推荐
Swift社区1 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht1 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht1 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20241 小时前
Swift 数组
开发语言
weixin_466202782 小时前
第31周:天气识别(Tensorflow实战第三周)
分类·数据挖掘·tensorflow
stm 学习ing2 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc3 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe4 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin4 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python