PQ实战 | 使用Excel收集全国天气历史数据

搞数据分析的经常要数据的获取头疼,尤其是我们Excel用户,不过现在使用PQ来处理是非常简单的,今天我们就通过收集全国历史天气数据来讲解一下!
(案例文件下载:见文末)
我们要获取数据的网址:http://www.tianqihoubao.com/lishi/
我们拿江苏-无锡的数据举例:我们想全部获取到表格中
看看Excel怎么操作:
获取网站,加载到PQ中
复制网址粘贴到PQ中
找到对应日期天气的数据,点击数据-自网站,粘贴网址,确定
选择对应的表格,加载到表格中即可!
http://www.tianqihoubao.com/lishi/wuxi/month/201101.html
稍微摸索一下,我们会发现网址中的 wuxi 是城市的拼音,201101对应数据的年月,那我们就可以把以上过程定义成函数,这两个操作参数进行调用,就可以获取到全部的天气数据了!
根据参数制作自定义函数
参数我们已经分析过了,我们只要把自动生成的过程中的对应的参数修改成变量,按照PQ语法自定义函数即可!

let

getData =(cs,rq)=>Table.PromoteHeaders(

Web.Page(

Web.Contents(

"http://www.tianqihoubao.com/lishi/" &

cs & "/month/"& Text.From(rq) &".html"

)

){0}[Data]

)

in

getData

演示调用:测试无锡201201日期数据
调用函数,批量获取
获取无锡2011年1月到12月的全部 天气数据
= Table.Combine(List.Transform({201101..201112},each getdata("wuxi", _)))
List.Transform详细教程参考:
Power Query中的Transform怎么用?
使用TransformMany配合就可以实现 2011-2019 这九年每个月的每天的天气数据,其他城市同理,就不再一一演示

= Table.Combine(List.Transform(List.TransformMany({2011..2019},(a)=>{1..12},(x,y)=>Text.From(x)&Number.ToText(y,"00",null)),each getdata("wuxi", _)))

加载到Excel中,共3288行数据
可能部分同学还对PQ不太熟悉,如果觉得强大,可以学起来,另外本次案例直接下载查看!
链接: https://pan.baidu.com/s/12jMBl4PDpEMdE2cmXFv1hA 提取码: 4uex 
(0)

相关推荐