龙空技术网

使用Python 实现vLookup

大肚皮程序猿 87

前言:

如今朋友们对“python中vlookup”大体比较关切,小伙伴们都需要剖析一些“python中vlookup”的相关知识。那么小编也在网摘上搜集了一些有关“python中vlookup””的相关文章,希望我们能喜欢,各位老铁们快快来了解一下吧!

Vlookup本质上用于垂直排列的数据。Vlookup是一个用来合并两个不同的数据表的操作,基于一些条件,两个表之间必须有至少一个共同的属性(列)。执行这个操作后,我们得到一个由两个表的所有数据组成的表,这些数据是匹配的。

但如何使用python脚本实现Vlookup呢,下面我们用一些实例讲解用法:

首先介绍Pandas Merge函数:

merge是用来拼接两张表的,那么拼接时自然就需要将用户信息一一对应地进行拼接,所以进行拼接的两张表需要有一个共同的识别用户的键(key)。总结来说,整个merge的过程就是将信息一一对应匹配的过程,

merge参数:

参数

说明

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

显示合并数据中数据来自哪个表

一、inner

merge的'inner'的类型称为内连接,它在拼接的过程中会取两张表的键(key)的交集进行拼接。我们有以下的数据,主表有 "i" "j" "year" 等列,及GPD等其它若干子表

读取主表

data=pd.read_excel("变量a.xlsx",sheet_name="面板数据")data

读取子表1

data1=pd.read_excel("变量a.xlsx",sheet_name="dvaijt jit")data1.columns=["i","j","year","dvaijt_new"]data1

由图可见两张表数据都是81510行,现在使用“inner”根据主表和子表1中相同的【"i" ,"j" ,"year" 】列建立连接,取子表中【"dvaijt_new"】列的数据放入主表

inner_join = pd.merge(data,                       data1,                       on =["i","j","year"],                       how ='inner')

结果

二、left 和right

left''right'merge方式其实是类似的,分别被称为左连接右连接。这两种方法是可以互相转换的,所以在这里放在一起介绍。

'left'

merge时,以左边表格的键为基准进行配对,如果左边表格中的键在右边不存在,则用缺失值NaN填充。

'right'

merge时,以右边表格的键为基准进行配对,如果右边表格中的键在左边不存在,则用缺失值NaN填充。

现在主表还用刚才的data,子表使用数据比主表数据多的"tijt"

data5=pd.read_excel("变量a.xlsx",sheet_name="tijt")data5.columns=["i","j","year","tijt"]data5

由图可见主表数据都是81510行,子表数据1014156行,我们继续使用merge函数left参数以主表数据为准取子表的“tijt"列数据到主表中

inner_join_TIJ= pd.merge(inner_join_F,                       data5,                       on =["i","j","year"],                       how ='left',)inner_join_TIJ["tij"]=inner_join_TIJ["tijt"]inner_join_TIJ

结果

由结果可见数据还是81510行,但会出现缺失值,如果我们还使用inner参数,结果是两个表数据的总和,使用right参数,结果是以子表数据为准,这里我就不一一举例,感兴趣的同学可私信我把数据给你练习。

以上基本了解merge的整个过程,总结来说merge的不同类型区别就在于拼接时,选用的是两表的键的集合不同。关于Pandas的merge就介绍到这里,欢迎同学们批评指正,点赞转发,谢谢支持!

标签: #python中vlookup