如何使用Power BI对2019互联网趋势报告进行进一步的分析
一、 全球互联网用户分析
报告页_008我们从图表中看到,增长率从2010年开始整体还在增长,但是增速还是下降为主,在2018年的时候出现了个反弹。也就是说增速是一直在降低,这个是什么原因导致的呢?互联网用户还能增长多少呢?我们通过全球人口数据分析得到如下展示。
2019人口Top20我们要先了解目前全球总人口数,我们通过互联网搜索下全球人口,找到一个2019年世界人口排名的网页,我们可以通过Power Query来获取其数据来进行下一步的分析。https://www.phb123.com/city/renkou/rk.html
2019世界人口排名1. 数据抓取
我们打开网页可以看到这个是有多个页面组成的一个数据表,我们点击末页可以看下一共有多少页(这个是为了方便我们循环抓取使用)。点击后发现一共12页,同时网页地址是这样的。https://www.phb123.com/city/renkou/rk_12.html
数据页面数量也就是说,最终网页变化的就是rk_之后的这个数字。那我们进入Power Query里面,看下如何进行抓取。
使用从web导入的方式随便导入其一页的地址,可以发现数据是存在在Table 0标签里的。
我们勾选Table 0后可以进入到编辑页面,并打开高级编辑器,可以看到里面主要是有3行代码。源,Data0也就是导航以及更改类型3个步骤。我们可以把源和Data0组合下。
单网页数据抓取我们主要是针对第一条代码进行循环抓取。
List.Transform({1..12}, each
Web.Page(Web.Contents("https://www.phb123.com/city/renkou/rk_"
& Text.From(_) &
".html"
)
){0}[Data]
)
得到一个包含表格的列表格式。
循环抓取结果我们再次转换成表格并展开即可得到我们所需要的数据。并在最后一步把数据格式都调整下并加载到Power BI的表里。
2. 在Power Pivot里面进行格式调整。
对国家这里把数据分类选择为国家/地区;增长率格式为百分比,并保留3位小数;人口数量这里也可以改成千分位。
人口数量格式调整 增长率数据格式调整 国家数据格式调整3. 编写度量值
A. 世界总人口数
世界总人口 = Round(Sum([人口数量])/100000000,3)
解释:
因为我们不需要很精确,一般表示世界人口可以用亿为单位,所以这里就直接求和后除以亿并保留3位小数。
B. 数量最多的前20位国家人口数量
人口top20 =
var top20_rk=Topn(20,All('世界人口'[国家]),[世界总人口])
return Calculate([世界总人口],top20_rk,Values('世界人口'[国家]))
解释:
因为我们查看数据都是以国家为维度,所以在求Top20的时候需要添加All来忽略国家的维度。但是最后要仅显示前20位的时候,则还需要把维度还原,所以用了Values。
C. 数量最多的前20位国家的人口增长率
Top20_增长率 = Calculate(Average('世界人口'[增长率]),
TopN(20,
All('世界人口'[国家]),
'世界人口'[世界总人口],
DesC),
Values('世界人口'[国家])
)
解释:
写法差不多,只不过这里省略了变量,同时求和改成了平均值(这里无所谓是用哪个,因为最终会被筛选成为唯一值,只不过增长率一般来说不大会用累计求和)。
4. 可视化展示
这里我们一共用了2个图形,一个是地图,一个是折线和簇状柱形图。
A. 地图
可视化选项里面选择地图。
可视化_地图把对应的维度及数据拖入进对应的地方即可。
可视化_地图_数据在属性里面,可以把标签类别的字体大小,气泡的大小相应改动即能得到如上效果。
可视化_地图_属性B. 折线和簇状柱形图
可视化里新建一个折线和簇状柱形图
可视化_折线和簇状图把共享轴,列值,行值分别填入相对应的数据。
可视化_折线和簇状图_数据更改X轴国家字段以及标签的文字大小,调整到合适位置。
可视化_折线和簇状图_属性_X轴因为我们把柱形图和折线图相对分隔开,所以就需要调整Y轴的最大值和最小值以便能够让图形看起来更容易。
可视化_折线和簇状图_属性_Y轴这里我们把人口的最大值改为20,增长率的最小值改为-0.15,这样就能把柱形图和折线图相对的隔开。
可视化_折线和簇状图_属性_Y轴数值这样我们就把这张世界人口图给做好了。
那我们做国际贸易,使用这张图能知道些什么呢?
5. 分析结果
目前全世界总人口约为75.8亿人,互联网用户目前为不到40亿,正好和后面一张分析图形成51%的互联网渗透率的对应关系,数据能够得到相互印证。
报告页_010