python实现vlookup_吊打 vlookup 是种怎样的体验?

v2-414dfea067f44ea398500d97ebf70377_1440w.jpg?source=172ae18b

在上一篇推文中,我对百万行 vlookup 做了简单的尝试。

呆呆:运行一百万行 vlookup 是种怎样的体验?​zhuanlan.zhihu.com

结论:如果只是单纯的进行 vlookup 计算,在开启多线程加上模糊匹配小技巧的前提下,Excel 勉强胜任。(运算时间一分钟内,根据电脑硬件水平浮动)

9d90435a6a75b1f1aff5066c29573058.png

但是对于多条件 vlookup,也就是数组公式,上万行数据就已经招架不住了。

其实这情有可原,Excel 的设计理念就不是为大数据而生的。那在不动用数据库的前提下,微软怎么满足用户更大规模(相对普通用户而言)的运算需求呢?答案就是 Power Query!

心急的你是不是已经准备去下载了,不要慌,在 Excel 2016(或以上)版本中,已经内嵌了这个功能

6f337e44dde313ab97b97d58657ee373.png

长话短说,我们现在就开始吧!

1.生成数据源

跟上一篇推文一样,我们还是用 Python来生成;不过这次我调用了 Faker 库,让数据更接近真实

import 

生成这个数据,旧电脑用了 400 秒,更旧的电脑用了近1600秒 ……

973b4d4bfd759ebe8dad3c25b1048aee.png

生成后的数据长这样

a2329d508a9f9214d3a987ab34ba2fb5.png

左边 A 至 F 列是一串人物信息,相当于条件,G 列表示一个金额,相当于结果;

右边的 I 列至 N 列是乱序的人物信息,我们需要匹配到 G 列的金额;

聪明的你应该明白我的意思

2. 用 Power Query 实现多条件查询

首先选择源数据,也就是左边部分,点击数据标签的从表格

1970df662a5268dc3cf8af0b57f96795.png

弹出创建表的对话框

d73b04b45359e06552fb50e39b603bfb.png

确定后会调出 Power Query

028d5a00c03decc678ef7d4ffbdc270e.png

右侧可以重命名,下面记录了操作步骤

01d4160ec6a9f769dba9871f0255c30b.png

关闭并上载至

2b8c5e38746a9d83785a3cbebcf753c5.png

我们需要先匹配条件,所以创建连接即可,没必要创建表

06df8a9d128a39f92735f8b76eafc6c5.png

创建好后,右边会显示

8933130cca0ea5a135edeb649888a0b0.png

选择右边,我们要匹配的信息,同样创建表

b48ca0f1b2edc4a1ffceeb8598736142.png

点击这个三角形可以展示我们所有的查询,也就是上传到 Power Query 的表

353074c7a79d90bea7a5a7c1e4e9cb3e.png

095e97b3ba72f744bd7beb5f05c21616.png

关键步骤,点击合并查询

43667fcda7207c12622d98c56a8f5705.png

分别选中两张表的条件字段,等待计算完成

1c83969e0b2196b83620939521ecce85.png

匹配完成

aff2507d9e89233d3b3b3136d48da9d6.png

这时候,多了一列字段

2891b7ad0a1bfc15470ff81eee737c32.png

选择我们要匹配的列

c2745146ec6ab9208b50f99be79155f8.png

加载中

90c175d6873759834864635812ae488f.png

完成了!

c8f773924d69e941669c636373fa7300.png

将结果从 Power Query 中上载到 Excel 里面,这次选择关闭并上载就好了

fac5fa5b5840f7e7eeb73812035bc4cf.png

发现只有一小部分数据,别着急

1cb4812eb52c5400e55159e04b817824.png

右边会显示加载进度

a6057336e25a73ddf1ce1ffbcfbe2ea3.png

完成啦!

e1a3afc2bbaf4494864907c60e058c28.png

然后直接保存成 xlsx,或者 csv 就好了

3.结论

Power Query 完全可以胜任百万行多条件查询任务,运算量更低的单条件 vlookup 就更不在话下了。

而且相比其他软件或者数据库,Power Query 的优势在于:

a. Excel 2016内置,不用额外安装

b. 不用写任何公式

c. 性能足够,处理速度尚可

当然,对于 Power Query 我也只是学了个合并查询,还请各位数据大佬多多指点!

7ea141a1f2467b3beb878c87e9b6b07b.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值