Py学习  »  Python

2021中国胡润百富榜揭晓,Python可视化走一波~

Crossin的编程教室 • 2 年前 • 275 次点击  

2021中国胡润百富榜

大家好,欢迎来到 Crossin的编程教室 !

前几天看到一个有意思的榜单“中国胡润百富榜单”,今年是胡润研究院自1999年以来连续第23次发布“胡润百富榜”,上榜门槛连续第九年保持20亿元。今天就分享一篇案例文章:带大家分析看看这个排行榜里都有哪些信息。

数据采集

数据来源:https://www.hurun.net/zh-CN/Rank/HsRankDetails?pagetype=rich

打开页面如下我们需要采集前 2000 名榜单人员的基本信息,分析过程十分简单:F12 打开开发者工具。CTRL + R 刷新页面,就可以看到抓到的数据包。https://www.hurun.net/zh-CN/Rank/HsRankDetailsList?num=YUBAO34E&search=&offset=0&limit=20

采集的链接中包含两个主要参数,

  • offset:0,页码
  • limit:20,限制数据量最多 20 条

代码抓取的的时候暴力点,直接设置 limit=2000,即一次请求 2000 条用户数据,不用分页请求。

思路有了,开始撸代码!

import requests

headers = {
    'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36'
}

params = {
    'num''YUBAO34E',
    'offset'0,
    'limit'2000
}

url = 'https://www.hurun.net/zh-CN/Rank/HsRankDetailsList'
page_text = requests.get(url=url, headers=headers, params=params).json()
page_text

有数据输出,并且数据量看起来也没问题,下一步开始解析需要的字段。代码较多这里就不展示了,文末有完整源码获取方式

由于数据包中的信息确实较多,我只提取了部分需要的字段,大致如下:由于后面需要做地图,需要省份信息,所以对出生地字段切割一下,将省份提取出来,图片字段同样也要做一些处理,主要是由于我用 Tableau 做图的原因,如果大家可视化方式不同,完全可以跳过这一步!

df['birth_place_split'] = df['birth_place'].str.split('-')
df['birth_place_split'] = df['birth_place_split'].apply(lambda  x:'' if len(x) == 1 else x[1])
df['photo_split'] = df['photo'].apply(lambda x:x.split('/')[-1])
df.head()

最后将处理好的数据集保存到本地。

可视化

可视化工具:Tableau 2021.3

百富榜TOP10

由于平时不怎么关注这些内容,第一次看这个结果竟发现前十的只认识 5、6 个。我一直还以为首富应该是“两马”中的一个,现在一看确实是我跟不少时代了。。饮料、医疗保健也这么赚钱的哇!

百富榜年龄分布

榜单上的 74% 大佬年龄分布在45~70岁之间,其中58岁的有125人,大部分都是中年。

百富榜出生地分布

出生地分布前三名分别是:浙江、广州、江苏。

百富榜热门产业

热门产业主要还是房地产、投资、医药、食品、化工等,确实都是大佬们玩的东西。

合成看板

最后做个汇总性的看板,加点联动效果。

时间比较赶,加上最近确实比较忙,排版什么的也没细做,大家看个乐就好。

祝大家早日上榜!

公众号后台回复“胡润”即可获取 源码 + Tableau源文件。

如果文章对你有帮助,欢迎转发/点赞/收藏~

作者:Python丁小杰

来源:Python新视野


_往期文章推荐_

【可视化】全运会历届金牌榜




如需了解付费精品课程教学答疑服务
请在Crossin的编程教室内回复: 666

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/124639
 
275 次点击