「流程案例」| 胡润富豪榜数据获取、分析与可视化

前言

谁是中国首富?这是每年胡润富豪榜发出时大家最关心的话题。但只关注第一位就太未免浪费这份榜单的价值了,事实上这份榜单能挖掘到的信息很多,比如:

  • 哪些行业创造财富的能力最强
  • 这些大佬的年龄又集中在哪些区间
  • 哪些人资产进步最大

本文将从数据获取、数据清洗、数据可视化入手,实现一整套完整的数据分析流程

目标网站:https://www.hurun.net/zh-CN/Rank/HsRankDetails?pagetype=rich

图片
图片

本文数据代码可以在公众号 “数据分析与商业实践” 后台回复「胡润」获取,PS:这是一个零基础入门 python 一个半月并与我联系紧密的读者的来稿,非常励志!

数据获取

初步来看,我们能获得什么信息?

非常直观,这里给出了每位企业家的排名,目前的财富金额,以及对比上次上榜时的排名变化,在个人信息里还展示了性别和年龄,企业信息里展示了旗下公司和行业的信息。为了锻炼能力,我们使用爬虫的 Selenium 自动化测试框架来完成数据获取。代码思路与以往的推文 “技术指导投资:Selenium好买基金网净值爬虫分析” 非常类似,所包含的函数及其功能都可以完全套用(源代码放在后台)。
在这里插入图片描述
最后我们就得到了下面这份非常原生的数据。(仅展示10行)
在这里插入图片描述
有了这份数据我们能开始数据分析吗?

事实上可以,只要你能忍的了数据中有可能存在的乱码,这性别和年龄杂糅在一起的粗犷感,以及随时有可能出错的数据类型等等的问题。那么进行数据清洗就成为必要的工作了,使得我们经过清洗后能够得到一张干净清爽并且适用性非常高的新表。

我们需要做什么工作?

实际上数据清洗并不复杂,首先通过数据探查发现我们原来的表的一些问题,然后通过一系列的操作把这些问题解决,最后导出就行了。以下是整体的流程,跟着后台代码过一遍,相当于又对 Pandas 常见又经典的数据处理操作复习了一遍。
在这里插入图片描述

通过数据清洗工作我们就得到了下面这份新的数据表
图片

实际上我们还分别导出了多人上榜的数据和单人上榜的数据,这里不予展示。对比上面那张原生的数据表,不得不说这份数据看起来就顺眼的多,不仅如此它还解决了很多问题,为什么这样说?

  • 首先富豪姓名列中其实是有组合上榜的,那么如何生成其对应的年龄就成了个问题。
  • 其次,对于一些无效的和空的字符干扰,以及字段属性的错误都进行了合适的修正。

可视化

经过上面的一系列努力那么我们终于可以开始我们的可视化分析部分了,关于可视化的代码感兴趣的同学也可以在后台获取,这里仅展示可视化结果。对于排名的话,我们可以来看一下哪些人排名比较靠前
在这里插入图片描述
图片

注意哦,这里的数字单位是亿元,默默看了下我的支付宝余额,不得不说人与人之间的差距真大。

再来看看财富的分布图,可以看出财富大多集中在20亿到500亿这个区间。
图片
财富与年龄的气泡图
图片
看的出来字节跳动的老板是又年轻又有钱。

我们再来看看排名的变化情况
图片

排名下降的人最多,然后新晋的富豪也不少,提升的就相对来说比较少啦,看样子在富豪榜上也是一件逆水行舟不进则退的事情。当然我们可以找出哪些人进步最大,以及哪些人下滑最多。

排名上升超过500名的人
图片
排名下降超过1000名的人
在这里插入图片描述

对于性别和年龄,我们可以看看在哪些年龄段富豪比较扎堆呢,以及性别的比例,下面是不同年龄阶段的富豪男女比例
图片
男女比例接近九比一了,此外富豪年龄大多集中在50岁到60岁这个区间。
图片
从性别与年龄的关系堆叠图中,也能看出来富豪男女比例的失衡,以及中老年化的总体趋势。(柱子宽度表示数据量大小)

当然对于很多人来说,关心的也许是哪些行业和公司是最赚钱,创造财富是最多的呢,毕竟男怕入错行,女怕嫁错郎。
图片
整体看,还是搞房地产的富豪最多,中国的房价上涨有他们一份责任。
图片
下面是我生成的词云,可以看看这些有钱人大多是哪些姓氏,以及哪些姓氏的资产最多。首先以姓氏在榜单上的频率来生成词云。
图片
李王张陈刘,这些姓氏中富豪是最多的,可能有的同学会说,我小马哥呢?现在再以资产额度作为权重来生成词云
图片

姓李的还是最有钱的,同时由于二马两位大佬,马这个姓氏也变得突出了。

分析到这里有点乏了,当然数据的价值是无穷无尽的,能做出来的东西不止我上面所展示的,能给读者带来启发是我莫大的荣幸。

本人的第一次投稿,同时也很感谢萝卜大佬在我学习路上的帮助和支持!!

本文数据代码可以在公众号 “数据分析与商业实践” 后台回复「胡润」获取,PS:这是一个零基础入门 python 一个半月并与我联系紧密的读者的来稿,非常励志

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你完成这个任务。首先,你需要安装Python和Jupyter Notebook,并且安装一些必要的Python库,比如requests、beautifulsoup4、pandas、matplotlib和seaborn。如果你还没有安装这些库,你可以通过运行以下命令来安装它们: ``` pip install requests pip install beautifulsoup4 pip install pandas pip install matplotlib pip install seaborn ``` 接下来,我们可以开始编写代码了。以下是一个基本的爬虫程序,它可以爬取胡润百富榜单的数据,并将其存储到一个CSV文件中: ```python import requests from bs4 import BeautifulSoup import pandas as pd url = 'http://www.hurun.net/CN/TopList/Details?num=535CC51BB8A4' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') items = soup.select('.table tr') data = [] for item in items[1:]: rank = item.select('.rank')[0].text.strip() name = item.select('.name a')[0].text.strip() industry = item.select('.industry')[0].text.strip() wealth = item.select('.wealth')[0].text.strip() data.append([rank, name, industry, wealth]) df = pd.DataFrame(data, columns=['Rank', 'Name', 'Industry', 'Wealth']) df.to_csv('hurun.csv', index=False) ``` 上面的代码使用requests库来获取网页的HTML代码,然后使用beautifulsoup4库来解析HTML代码,并选择出我们需要的数据。最后,使用pandas库将数据存储到CSV文件中。 接下来,我们可以使用Jupyter Notebook来进行数据分析可视化。以下是一个简单的例子,它可以读取上面生成的CSV文件,并使用matplotlib和seaborn库来绘制柱状图和散点图: ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns df = pd.read_csv('hurun.csv') # 绘制富豪所在行业的柱状图 plt.figure(figsize=(12,6)) sns.countplot(y='Industry', data=df, order=df['Industry'].value_counts().index) plt.title('Distribution of Industries') plt.xlabel('Number of Billionaires') plt.ylabel('Industry') # 绘制富豪的财富和排名之间的散点图 plt.figure(figsize=(12,6)) sns.scatterplot(x='Rank', y='Wealth', data=df) plt.title('Rank vs. Wealth') plt.xlabel('Rank') plt.ylabel('Wealth') plt.show() ``` 上面的代码使用pandas库来读取CSV文件,然后使用matplotlib和seaborn库来绘制柱状图和散点图。你可以根据自己的需求进行修改和调整,以便更好地分析可视化数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值