Power Query 转换是数据处理的重要过程,转换工作开始之前要先确定好自己的目标,你需要得到什么样的结果。其实转换工作的实质就是:
有了目标之后,就是选择适当的转换方法,这个有点和Excel写公式相近,同一个问题可能会有很多种公式的写法,每个人都有自己一个习惯,有的高手认为,一步搞定,公式越短越显功力,有的则分步完成,同样能得到结果。所以只要解决问题,你的方法就是对的。
转换方法,大的方向有三个:
具体到操作上:
Power Query 转换操作的基本约定:
我们来看一个例子:从天气网站上获取城市列表的转换过程:
左边是我们的目标表格,右变是网页的截图,看起来很整齐,但是如果你直接复制到Excel中就是一团汉字,拆都拆不开。看看源码的样子,也是很头疼
98行是我们要的数据,看起来也是很乱。
Power Query数据处理过程的第一步是建立连接,从网页建立连接是可以的,但是每次都要从网站抓取,不是很方便,我们可以源代码复制到文本中,然后从文本建立连接。
转换开始
第一步:修改源的设置
默认的是HTML格式的,需要修改成文格式
第二步:减法去掉多余的内容
我们复制到文本的时候多了一行空白,变成99行了,保留99行,其他行都去掉。
第三步:加法分列
省直辖市是h2字体,我们用
第四步:变换转置:行变列
因为后续的出列还要继续拆分,放在列拆分比较方便。
第五步:加法继续拆分列
HTML中标志都是成对出现的
第六步:准备分列字符
用逗号替换,逗号就是后续分类用的符号
第七步:减法去掉多余的字母与字符
使用Text.Remove函数去掉多余字符,保留汉字。添加两个自定义列
省市=Text.Remove([Column1.1],{"a".."z","<","=","/",">","0".."9"}) 区县=Text.Remove([Column1.2],{"a".."z","<","=","/",">"," ", "-","0".."9"})
这里使用了M函数,要首字母大写,至于删除什么符号,要根据具体情况,适当添加,删减符号,当然不能把逗号也remove了,否则我们做的分列符号就白做了。
第八步:减法去除多余的列,与空行
第九步:加法拆分列
看见了么,我们预留的逗号在这一步发挥作用了。
第十步:变换逆透视列
选第2列,按SHIFT+END选中除第一列外的后面所有列,然后按逆透视按钮。
第十一步:减法删除列,筛选空白行
到这里转换工作就全部完成了。
其实我也不是一下子就全部做好,中间会有些问题,发现问题在去修正,例如自定列的时候,去除空格和短划线,就是在后来的检查中发现,县市的里面有些有多余的空格和短划线,纠正这个问题,可以添加两步字符替换,也可以在Text.Remove函数中直接去除。
Power Query转换操作,就是这样不断的找规律,加加减减,最后转换成你需要的结果。
页面更新:2024-03-02
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号