读取子表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 和rightleft'和'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
结果