Python处理表格匹配

发布时间: 2023-11-27 18:02 阅读: 文章来源:1MUMB103600PS

既然 pandas 的 merge 方法是按照关系数据库表连接设计的,那么自然有数据库中的"关系验证"功能:

merge 设置参数 validate=‘1:1‘ ,表示1对1关系(匹配表1条记录只能匹配数据源表1条记录)现在,再次执行匹配,pandas 报错,明确告诉你,右表有重复记录

还有其他的验证关系,比如:‘1:m‘,‘m:1‘,‘m:m‘

身不由己

有时候需求就是要在重复数据中匹配某一条符合条件的记录。但是,pandas 中的 merge 是不会提供这样的功能。因为 pandas 中处理数据非常简单灵活,把数据源按要求处理规范是非常简单。下面看看例子。

"匹配时间最晚的人员信息":

先把数据源按要求得到最后更新的记录即可

跟着专栏学习的同学应该都能理解,这里不展开讲解

我们可以用 Python 的基本知识即可对这些逻辑进行封装。 "匹配收入最小的人员信息":

自定义

如果不希望每次都写 merge 的各种参数,我们也可以自定义一个 vlookup 方法,把 merge 调用细节隐藏起来。

用上一个例子的数据。 "根据名字匹配信息,重复时,使用平价收入作为返回":

上图2个核心处理都直接使用自定义的方法现在,已经不需要分组与连接表的知识,也能轻松得到复杂的匹配需求了总结DataFrame.merge() ,2表连接参数 on 指定匹配关键列参数 validate 可对表关系进行验证参数 how 可指定连接方式,常用的关系都有

需要源码的小伙伴请转发本文并私信我"python"

如果希望从零系统开始学习 pandas ,那么可以看看我的 pandas 专栏,其中还有大量数据分析案例,教你方法、教你思路,玩转你的数据。

•••展开全文