【大数据】—谁是世界上最富的人?

引言

在2024年,全球财富的分布再次成为公众和经济学家关注的焦点。随着经济的波动和新兴市场的崛起,亿万富翁的名单也在不断变化。本文将深入探讨这一现象,通过最新的数据可视化分析,揭示世界上最富有的人在2024年的财富状况和趋势。财富不仅是个人成功的体现,也是全球经济动态的一个重要指标。了解亿万富翁的财富来源、行业分布以及他们的财富如何影响全球经济,对于把握经济趋势和预测未来市场走向至关重要。本文的目的是通过数据收集、分析和可视化,为读者提供一个全面的视角,观察和理解世界上最富有的人在2024年的财富状况。我们将探索他们的财富是如何累积的,以及这些财富在全球范围内是如何分布的。

数据集

“2024 年全球最富有的人”数据集提供了 2024 年全球最富有个人的详细概述。该数据集包括有关高管、他们的净资产以及他们所在的国家/地区的关键信息,为经济分析、市场研究和金融研究提供有价值的见解。
来源kaggle数据集包括以下列:

  • Rank 排名
  • Company 公司
  • Executive Name 行政人员姓名
  • Net Worth 净值
  • Country 国家

数据可视化

读入数据:

import numpy as np
import pandas as pd
import seaborn as sns
import plotly.express as px
import matplotlib.pyplot as plt
import plotly.graph_objects as go
sns.set(style="whitegrid")
import warnings
warnings.simplefilter("ignore")
warnings.filterwarnings("ignore")
df = pd.read_csv('World_Billionaire_2024.csv')
df.head(5)

在这里插入图片描述展示前五行数据,可以看到net worth列不是纯数值类型,包含了$和B,我们需要处理以便后续的计算画图。

df['NET WORTH'] = df['NET WORTH'].replace(['[\$,B]'], '', regex=True)
df

我们用正则表达式将$和B替换为空,看处理好的数据:
在这里插入图片描述数据集还是比较全的,全球2743个富翁。

在这里插入图片描述继续清洗,将net worth列非数值类型的值转为缺失值。

描述性统计和删除缺失值:
在这里插入图片描述探索性分析(EDA):

# 创建一个新的图形窗口,并设置其大小为20x20英寸(注意,这里的尺寸是指图形的画布大小,而非显示时的像素大小)  
plt.figure(figsize=(20,20))    
# 绘制df['NET WORTH']列的直方图。bins=20表示将数据分成20个等宽的区间来绘制直方图。edgecolor='black'设置直方图的边缘颜色为黑色。  
plt.hist(df['NET WORTH'], bins=20, edgecolor='black')    
# 设置x轴的标签为'Net Worth',表示直方图所展示的是“净值”的分布。  
plt.xlabel('Net Worth')    
# 设置y轴的标签为'Frequency',表示直方图的高度(或面积)代表每个区间内数据的频数或频率。  
plt.ylabel('Frequency')    
# 设置图形的标题为'Distribution of Net Worth',表示这个图形展示的是“净值”的分布情况。  
plt.title('Distribution of Net Worth')    
# 将图形保存为一个PNG文件到指定的路径('/Users/c/Desktop/heatmap_correlation_matrix.png')。dpi=350设置保存的图像分辨率为350像素每英寸。  
# 注意:文件名'heatmap_correlation_matrix.png'可能会与实际内容不符,因为这里是一个直方图,而不是热力图或相关性矩阵。  
plt.savefig('/Users/c/Desktop/heatmap_correlation_matrix.png', dpi=350)    
# 显示图形在屏幕上。如果这行代码不执行,图形将只被保存到文件中,而不会在屏幕上显示。  
plt.show()

在这里插入图片描述净值列数据直方图,富人的世界贫富悬殊还是很严重啊!

# 创建一个新的图形窗口,并设置其大小为20x20英寸。这个尺寸将决定绘图在屏幕或保存时的物理大小。  
plt.figure(figsize=(20,20))    
# 使用df['COUNTRY'].value_counts()计算'COUNTRY'列中每个唯一值的出现次数,并将这些次数作为饼图的扇区大小。  
# value_counts()方法返回一个Series,其索引是唯一的'COUNTRY'值,值是这些唯一值的出现次数。  
plt.pie(df['COUNTRY'].value_counts(),   
        # labels参数用于指定饼图中每个扇区的标签。这里使用df['COUNTRY'].unique()来获取'COUNTRY'列的所有唯一值作为标签。  
        labels=df['COUNTRY'].unique(),   
        # autopct参数是一个格式化字符串或函数,用于指定饼图中每个扇区的百分比标签的格式。  
        # '%1.1f%%'表示显示带有1位小数的百分比值。  
        autopct='%1.1f%%')    
# 设置图形的标题为'Country-wise Distribution',表示这是一个按国家分布的饼图。  
plt.title('Country-wise Distribution')  
plt.savefig('/Users/c/Desktop/heatmap_correlation_matrix.png', dpi=350)      
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述每个国家富人的占比情况,中国只占2.4%。

# 从df(一个pandas DataFrame)中选择'NET WORTH'列中最大的10个值及其对应的行,并将结果存储在top_10变量中。  
# 这将返回一个新的DataFrame,其中包含'NET WORTH'列中最大的10个值以及相应的所有列。  
top_10 = df.nlargest(10, 'NET WORTH')    
# 创建一个新的图形窗口,并设置其大小为12x8英寸。这将决定绘图在屏幕或保存时的物理大小。  
plt.figure(figsize=(12, 8))    
# 使用seaborn库(假设已经通过import seaborn as sns导入)的barplot函数来绘制一个条形图。  
# x参数指定了条形图的x轴数据,即'NET WORTH'列。  
# y参数通常用于指定条形的分类变量,但在这里,它用于指定条形的标签(通常是分类变量的值),因为我们想要显示'EXECUTIVE NAME'。  
# data参数指定了数据源,即前面创建的top_10 DataFrame。  
# palette参数指定了条形的颜色方案,这里使用了'viridis'颜色方案。  
sns.barplot(x='NET WORTH', y='EXECUTIVE NAME', data=top_10, palette='viridis')    
# 设置图形的标题为'Top 10 Richest People in the World - 2024'。  
plt.title('Top 10 Richest People in the World - 2024')    
# 设置x轴的标签为'Net Worth (in billions)',表示条形图x轴表示的是净值(以十亿美元为单位)。  
plt.xlabel('Net Worth (in billions)')    
# 设置y轴的标签为'Executive Name',表示条形图的y轴显示的是执行人员(可能是富豪)的名字。  
plt.ylabel('Executive Name')    
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述全球富人榜前十,第一名那英文是马斯克吧,是个很有格局的人,追求的是对科技进步的极限,而不是金钱。

# 创建一个新的图形窗口,并设置其大小为8x8英寸。这将决定绘图在屏幕或保存时的物理大小。  
plt.figure(figsize=(8, 8))    
# 使用pie函数绘制一个饼图。饼图的扇区大小由top_10['NET WORTH']列中的值决定。  
# 但是,请注意,通常pie图的扇区大小表示的是比例(即百分比),而不是具体的数值。  
# 如果'NET WORTH'列包含具体的数值(如净值金额),则可能需要先进行归一化处理。  
plt.pie(top_10['NET WORTH'],   
        # labels参数指定每个扇区的标签,这里使用top_10['EXECUTIVE NAME']作为标签,即显示每个富豪的名字。  
        labels=top_10['EXECUTIVE NAME'],   
        # autopct参数指定了每个扇区上显示的百分比格式,'%1.1f%%'表示带有一位小数的百分比。  
        autopct='%1.1f%%',   
        # startangle参数指定了饼图的起始角度(以度为单位),这里设置为140度,即饼图从140度角的位置开始绘制。  
        startangle=140,   
        # colors参数指定了饼图中每个扇区的颜色,这里使用seaborn库(sns)的color_palette函数来生成一个包含10种颜色的调色板。  
        # 'viridis'是seaborn提供的一个颜色方案名称,它将生成一个从蓝到黄的渐变色系。  
        colors=sns.color_palette('viridis', 10))    
# 设置图形的标题为'Net Worth Distribution of Top 10 Richest People',表示这是前10位最富有的人的净值分布图。  
plt.title('Net Worth Distribution of Top 10 Richest People')    
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述
前 10 名最富有的人的净资产分布饼图,还是马斯克的饼大。

# 创建一个新的图形窗口,并设置其大小为20x20英寸。这将决定绘图在屏幕或保存时的物理大小。  
plt.figure(figsize=(20, 20))    
# 使用seaborn库(假设已经通过import seaborn as sns导入)的countplot函数来绘制一个条形图。  
# 这个条形图展示了'COUNTRY'列中不同国家的频次(即每个国家有多少人在数据集中)。  
# y参数指定了条形图的y轴数据,即'COUNTRY'列。  
# data参数指定了数据源,即df(一个pandas DataFrame)。  
# order参数指定了条形图的排序顺序,这里使用df['COUNTRY'].value_counts().index来获取按频次排序的国家列表。  
# palette参数指定了条形的颜色方案,这里使用了'cubehelix'颜色方案。  
sns.countplot(y='COUNTRY', data=df, order=df['COUNTRY'].value_counts().index, palette='cubehelix')    
# 设置图形的标题为'Number of Richest People by Country',表示这是按国家分类的最富有人的数量图。  
plt.title('Number of Richest People by Country')    
# 设置x轴的标签为'Count',表示条形图的x轴表示的是频次(即每个国家的人数)。  
plt.xlabel('Count')    
# 设置y轴的标签为'Country',表示条形图的y轴表示的是国家。  
plt.ylabel('Country')  
plt.savefig('/Users/c/Desktop/heatmap_correlation_matrix.png', dpi=350)       
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述按国家/地区划分的最富有人数统计图 ,第一名为什么最后没把A写出来。

# 创建一个新的图形窗口,并设置其大小为20x20英寸。这将影响图形的尺寸,使得图形在屏幕上或保存为文件时具有更大的尺寸。  
plt.figure(figsize=(20, 20))    
# 使用seaborn库(假设已经通过import seaborn as sns导入)的boxplot函数来绘制一个箱型图(Boxplot)。  
# 箱型图是一种用于展示一组数值数据分散情况的统计图,包括中位数、四分位数和可能的异常值。  
# x参数指定了箱型图的x轴数据,即'NET WORTH'列,这通常表示要比较的不同类别的数据。  
# y参数指定了箱型图的y轴数据,即'COUNTRY'列,这通常用于区分不同的组别或类别。  
# data参数指定了数据源,即df(一个pandas DataFrame),它包含了'NET WORTH'和'COUNTRY'两列。  
# palette参数指定了箱型图中各箱体的颜色方案,这里使用了'coolwarm'颜色方案,这是一种从冷色调(蓝色)到暖色调(红色)的渐变颜色。  
sns.boxplot(x='NET WORTH', y='COUNTRY', data=df, palette='coolwarm')    
# 设置图形的标题为'Net Worth Distribution by Country',表示这是一个展示不同国家净值分布的箱型图。  
plt.title('Net Worth Distribution by Country')    
# 设置x轴的标签为'Net Worth (in billions)',表示箱型图的x轴表示的是净值(以十亿美元为单位)。  
plt.xlabel('Net Worth (in billions)')    
# 设置y轴的标签为'Country',表示箱型图的y轴表示的是国家。  
plt.ylabel('Country')  
plt.savefig('/Users/c/Desktop/heatmap_correlation_matrix.png', dpi=350)         
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述按国家/地区划分的净资产箱形图,这个图可以看异常值噢,就是四分位法的可视化版。

# 创建一个新的图形窗口,并设置其大小为20x20英寸。这将决定图形在屏幕上或保存时的物理大小。  
plt.figure(figsize=(20, 20))    
# 使用seaborn库(假设已经通过import seaborn as sns导入)的violinplot函数来绘制小提琴图(Violin Plot)。  
# 小提琴图是一种结合了箱型图和核密度估计(KDE)的可视化工具,能够显示数据的分布形状、中位数、四分位数以及可能的异常值。  
# x参数指定了小提琴图的x轴数据,即'NET WORTH'列,这通常表示要比较的不同类别的数据。  
# y参数指定了小提琴图的y轴数据,即'COUNTRY'列,这通常用于区分不同的组别或类别。  
# data参数指定了数据源,即df(一个pandas DataFrame),它包含了'NET WORTH'和'COUNTRY'两列。  
# palette参数指定了小提琴图中各个小提琴的颜色方案,这里使用了'muted'颜色方案,这是一种柔和的颜色组合。  
sns.violinplot(x='NET WORTH', y='COUNTRY', data=df, palette='muted')    
# 设置图形的标题为'Net Worth Distribution by Country',表示这是一个展示不同国家净值分布的小提琴图。  
plt.title('Net Worth Distribution by Country')    
# 设置x轴的标签为'Net Worth (in billions)',表示小提琴图的x轴表示的是净值(以十亿美元为单位)。  
plt.xlabel('Net Worth (in billions)')    
# 设置y轴的标签为'Country',表示小提琴图的y轴表示的是国家。  
plt.ylabel('Country')  
plt.savefig('/Users/c/Desktop/heatmap_correlation_matrix.png', dpi=350)           
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述
按国家/地区划分的净资产小提琴图。

# 使用seaborn库(假设已经通过import seaborn as sns导入)的histplot函数来绘制一个直方图,并可以叠加一个核密度估计(KDE)曲线。  
# histplot函数是seaborn库中用于绘制直方图的函数,相比matplotlib的hist函数,它提供了更多的可定制选项和更好的可视化效果。  
sns.histplot(df['NET WORTH'], kde=True, color='purple')    
# kde=True参数表示在直方图上叠加一个核密度估计(KDE)曲线,用于平滑地显示数据的分布。  
# color='purple'参数设置直方图和KDE曲线的颜色为紫色。    
# 设置图形的标题为'Distribution of Net Worth',表示这是一个展示净值分布的图形。  
plt.title('Distribution of Net Worth')    
# 设置x轴的标签为'Net Worth (in billions)',表示x轴表示的是净值(以十亿美元为单位)。  
plt.xlabel('Net Worth (in billions)')    
# 设置y轴的标签为'Frequency',表示y轴表示的是各个净值区间内的频数或频率。  
plt.ylabel('Frequency')    
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述
净资产分布图,由于富人的世界贫富差距比较严重,导致这个图不好看,很偏态!

# 创建一个新的图形窗口,并设置其大小为20x20英寸。这将决定图形在屏幕上或保存时的物理大小。  
plt.figure(figsize=(20, 20))    
# 使用seaborn库(假设已经通过import seaborn as sns导入)的stripplot函数来绘制一个条带图(Strip Plot)。  
# 条带图是一种展示分类变量(在这里是'COUNTRY')与数值变量(在这里是'NET WORTH')之间关系的图形。  
# 它通过为每个观察值在y轴上的分类变量位置绘制一个点来展示数值变量的分布。  
# x参数指定了条带图的x轴数据,即'NET WORTH'列,表示净值。  
# y参数指定了条带图的y轴数据,即'COUNTRY'列,表示国家。  
# data参数指定了数据源,即df(一个pandas DataFrame),它包含了'NET WORTH'和'COUNTRY'两列。  
# jitter参数设置为True,表示在y轴(即国家)上添加一些随机噪声(抖动),以避免数据点重叠。  
# palette参数指定了条带图中点的颜色方案,这里使用了'pastel'颜色方案,这是一种柔和的彩色方案。  
sns.stripplot(x='NET WORTH', y='COUNTRY', data=df, jitter=True, palette='pastel')    
# 设置图形的标题为'Net Worth Distribution by Country',表示这是一个展示不同国家净值分布的图形。  
plt.title('Net Worth Distribution by Country')    
# 设置x轴的标签为'Net Worth (in billions)',表示x轴表示的是净值(以十亿美元为单位)。  
plt.xlabel('Net Worth (in billions)')    
# 设置y轴的标签为'Country',表示y轴表示的是国家。  
plt.ylabel('Country')  
plt.savefig('/Users/c/Desktop/heatmap_correlation_matrix.png', dpi=350)             
# 显示图形在屏幕上。如果这行代码不执行,图形将不会被显示出来。  
plt.show()

在这里插入图片描述
按国家/地区划分的净资产条带图 。

小结:

今天使用富人数据,画了很多图,方便以后调用,大家也可以关注我方便查看。
我还会绘制很多图,网页版的、可以动的、可交互的都会,点个赞,收藏评论下是我创作的动力。

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花花 Show Python

你的打赏会让我有创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值