python2.7版本用bs几_PowerQuery超级方便的模糊匹配,Excel也能用哦

74d0d2a4ab4a69588fdc4a6a9937b3c0.png

最近有几个星友问到,如何进行数据的模糊匹配?本文就利用一个简单的例子,来看看PowerBI是如何快速完成模糊匹配的。

模拟数据如下,有两个表,分别是各省市2018和2019年的数据,

c9a7b07fe29edef32cea64ec0ed873ce.png

这是个很常见的场景,由于某种原因,两个年度的省份名称规则不一致,2019年全称,而2018年是简称。

把两年的数据合并到一起,本来用Excel的VLOOKUP函数就可以轻松做到的事情,因为省份名称不一致而增加了不少难度。

这个问题用Excel公式或者M函数也能找到解决方案,这里分享个更简单的方法,直接使用Power Query的模糊匹配功能。

将这两个表格导入到PowerBI中,进入Power Query编辑器,点击合并查询,以省份为关联列,如下图所示。

27294127b1c408263bfad44a7da3b3cd.png

联结种类选择为左外部,最重要的是在联结种类下面,勾选“使用模糊匹配执行合并”

点击确定,并展开合并列,看看是什么效果。

9dc28a78b23a31c368670edfb877d948.png

竟然都是空值!

就是没有匹配成功,是不是这个模糊合并功能不好用呢?

当然不是。

在上面勾选模糊匹配时,你应该能注意到,下面还有个模糊匹配选项,打开后发现还有这些参数可以设置:

f6b70a980039cc2188e36019a0420666.png

这些参数都是可选的,但是为了匹配的效果,还应该了解这些参数的用法。

其中第一项相似性阈值,就是相似度达到多少时匹配,默认是0.8,但是上面的数据,相似度最高才0.67(比如"北京"和"北京市"),所以默认匹配时全部没有匹配成功。

而"新疆"和"新疆维吾尔自治区"的相似度更低,只有0.25,所以为了都能匹配成功,我们把这个阈值调到0.25,然后看看匹配的效果。

b05bd7e69f0fffd921f60287f4a741f2.png

正式期望的结果,是不是很简单。

所以匹配之前,还要先了解你的原始数据,预估相似的比例,调整阈值,才能更好的完成模糊匹配。

第二个可选参数是最大匹配数,如果不填,会把所有匹配行找出来,如果另一个表不止有一行,可以根据需要,想匹配出来几行就填写数字几。

最后一个参数是选择转换表。可以通过查询中的另外一个表作为转换表进行匹配,在转换表中,可以提前定义好,不规范值和规范值的对应关系,相当于同义词表,特定场景下非常有用。

关于模糊匹配就简单介绍到这里,后面两个参数的使用,有需要时可以自行测试效果。

最后要说的是,不要因为有模糊匹配功能,就可以对源数据不加约束,依然应该尽量规范你的数据源,能保持一致最好。

模糊匹配一方面是计算量特别大,另外既然是模糊查找,就很可能会有误差,当数据量比较大时,这种数据误差还很难被识别出来。

这里用到的功能,来自PowerBI Desktop中的PowerQuery模块,365版本里已经有了这个功能,但其他版本的PowerQuery暂时还没有更新到这个功能。

所以,建议大家在合适的情况下,尽量养成用PowerBI Desktop进行数据处理的习惯,而不是Excel;PowerBI Desktop完全免费,功能齐全,为什么不用呢?

-精彩推荐-

学会powerquery这十三招,数据清洗不用愁!

Power BI度量值:各种时间指标的计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值