欢迎光临散文网 会员登陆 & 注册

python实现excel多个sheet表的查询匹配

2021-06-30 23:37 作者:哇咔咔咔拉ok  | 我要投稿

今天偶然间看到一位up主的python学习视频,讲的是python实现excel多个sheet表的查询匹配,说有一个总表想要得到不同班级的同学的电话,但是这些电话分别放在五个班级的同学录里(分别存放于5个sheet表内),类似于我们日常工作中用到的excel中的vlookup,不同的是,要引用的表被分别存储在不同的sheet表格里,这时候直接用vlookup是难以实现的。于是up主提供了一种来自于python的解决方案。

总表电话号码为空
2班同学录存放着电话号码

up主主要应用了python的xlwings和pandas两个库来进行实现。通过up主的视频讲解,学到了该方法。链接放在这里python实现多sheet的vlookup.但是由于之前没学习和应用过xlsings库,所以本着探索的心态,尝试只用pandas来解决问题。于是有了这篇文章,下面来展示一下基于pandas的方法。

1.首先导入pandas库和excel表格

2.由于pandas导入多个sheet,生成的表格类似于字典,所以df_total.keys()可以生成所有的键,对应各个sheet表的名称。但是字典不能计数,所以转换成列表进行数字切片,取0得到总表,也就是我们需要把电话号码匹配的目的地表。我这个例子共八位同学来自四个班。

3.df_total生成的类似字典转化成的列表取后四位就是4个班级的电话录。通过循环遍历取到每个班级的通讯录加上辅助列所属班级,依次添加到一个新的列表,生成一个新的总表,如下图所示。

4.最后和up主的一样,通过pd.merge进行匹配总表和新生成的总表,替换和删除不需要的列就顺利实现匹配到多个sheet里的电话。

5.总结,xlwings和pandas都可以完成多sheet表匹配问题。一个问题不只有一种解决方案,需要找到适合自己的。

python实现excel多个sheet表的查询匹配的评论 (共 条)

分享到微博请遵守国家法律