Excel Vlookup匹配
示例:左表通过”姓名“字段匹配右表中的“子女姓名”
注:此处vlookup()第一次匹配成功后,默认结束该匹配,自动进入下一行。
Pandas Merge匹配
示例:
data1=pd.DataFrame({"姓名":["张三","李四","王五","潘六","柳七"],"落户积分":[5,6,7,8,9]})
data2=pd.DataFrame([["张三","张小小"],["张三","张大大"]],columns=["姓名","子女姓名"])
现需要以data1的“姓名”为基础,匹配data2中的“子女姓名”,可使用pandas中的merge()完成匹配。
data3=pd.merge(data1,data2,how="left",on=["姓名"])
最终匹配效果如下:
这里与EXCEL VLOOKUP不同的是,由于data2中存在同一个姓名对应多个子女姓名的情况,merge
()函数可以实现一对多的效果(即左侧一行数据匹配到右侧多行数据)。
如果需要实现跟EXCEL VLOOKUP相同的效果,即仅显示第一次匹配成功的结果,可以使用drop_duplicates
()函数去重。
data3.drop_duplicates(subset=["姓名","落户积分"],keep="first")
匹配效果如下: