函数语法:
pd.merge(left, right, how="inner, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
参数解释:
left - 数据顿对象。
right - 另一个数据顿对象
on - 要连接的列(名称)。必须在左侧和右侧数据框对象中找到
left on - 左数据框中用作键的列。可以是列名,也可以是长度等于数据长度的数组。
right on - 右数据框中用作键的列。可以是列名,也可以是长度等于数据长度的数组left index- 如果为True则使用左侧数据中的索引(行标签)作为其连接对于具有多索引(分层)的数据,级别数必须与右数据的连接键数匹配。
right index - 与右数据顿的左索引用法相同。
how -“left"、"right"、"inner"中的一个。默认为"inner"
sort - 按连接键按字典顺序对结果数据帧进行排序,默认为True。设置False将在许多情况下显著提高性能
(1)使用一个键合并两个数据
关键技术:使用'id键合并两个数据帧,并使用merge0对其执行合并操作
(2)使用多个键合并两个数据
关键技术:使用'id’键及subiect id'键合并两个数据帧,并使用merge(对其执行合并操作。
import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex','Amy','Allen','Alice','Ayoung'], 'subject_id':['subl','sub2','sub4','sub6','sub5']}) right = pd. DataFrame ({ 'id':[1,2,3,4,5], 'Name': ['Billy','Brian','Bran','Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print(left) print() print(right) #(1)根据id进行拼接 a=pd.merge(left,right,on='id') print("根据id拼接结果:") print(a) print() #(2)根据id与subject_id进行拼接 b=pd.merge(left,right,on=['id','subject_id']) print("根据id与subject_id拼接结果:") print(b)
(3)使用“how”参数合并
关键技术:how参数指定如何确定结果表中包含哪些键。如果左表或右表中都没有出现组合键,则联接表中的值将为NA。
合并方法 方法描述
left 使用左侧对象的键
right 使用右侧对象的键
outer 使用键的并集
inner 使用键的交集
[例1]采用上面的dataframe,使用Left Join左连接方式合并数据帧
关键技术:请注意on='subject_id,how='left'。
[例2]使用RightJoin右连接方式合并数据帧
关键技术:请注意on='subject_id,how='right'。
#例1 c=pd.merge(left,right,on='subject_id',how='left') print(c) print() #例2 d=pd.merge(left,right,on='subject_id',how='right') print(d)
[例3]使用outer Join外连接方式合并数据帧
关键技术:请注意on='subject_id',how='outer'
[例4]使用inner Join合并数据帧。
关键技术:请注意on='subiect_id',how='inner'
#例3 e=pd.merge(left,right,on='subject_id',how='outer') print(e) print() #例4 f=pd.merge(left,right,on='subject_id',how='inner') print(f)