python实现excel的vlookup函数

python实现excel的vlookup功能

pd.merge(left,right,how=“inner”,on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True,suffixes=(“_x”,“_y”),copy=True,indicator=False)

参数说明
left左表
right右表
how连接方式,inner、left、right、outer,默认为inner
on用于连接的列名称
left_on左表用于连接的列名
right_on右表用于连接的列名
left_index是否使用左表的行索引作为连接键,默认False
right_index是否使用右表的行索引作为连接键,默认False
sort默认为False,将合并的数据进行排序
copy默认为True,总是将数据复制到数据结构中,设置为False可以提高性能
suffixes存在相同列名时在列名后面添加的后缀,默认为(’_x’, ‘_y’)
indicator显示合并数据中数据来自哪个表

left_on和right_on 主要用于两个表列名不一样的情况,连接列相同直接用on。
how连接方式:与sql 的 join on类似, inner 取交集 ,保留两表的交集。outer 并集 ,保留两表未匹配数据 填充空值 。left和right为左连接后右连接 ,保留主表, 填充空值。

例:
调用pandas生成df1和df2

import pandas as pd
df1 = pd.DataFrame({  
    'A': ['A0', 'A1', 'A2', 'A3'],  
    'B': ['B0', 'B1', 'B2', 'B3'],  
    'key': ['K0', 'K1', 'K2', 'K3']  })  
    
df2 = pd.DataFrame({  
    'C': ['C0', 'C1'],  
    'D': ['D0', 'D1'],  
    'key' : ['K0', 'K4'],
    'key1':['k0','k3'] })

在这里插入图片描述
在这里插入图片描述
左连接:左表保留,填充右表与坐表key匹配的项,不匹配的填充空值

df=pd.merge(df1,df2,how='left',on='key')
df

在这里插入图片描述
右连接:和左连接相似,主表变成右表

df=pd.merge(df1,df2,how='right',on='key')
df

在这里插入图片描述
外连接:两表合并所有key,未匹配填充为空值。

df=pd.merge(df1,df2,how='outer',on='key')
df

在这里插入图片描述
内连接:取两表的交集

df=pd.merge(df1,df2,how='inner',on='key')
df

在这里插入图片描述
连接项的名称不一样:左右表的名称单独列出,left_on,right_on

df3 = pd.DataFrame({  
    'C': ['C0', 'C1'],  
    'D': ['D0', 'D1'],  
    'key1':['K0','K3'] }
)
df3

在这里插入图片描述

df=pd.merge(df1,df3,how='left',left_on='key',right_on='key1')
df

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值