pandas.merge函数功能:将两组列数据拼接到一起
一般的简单调用模式:
merge(left, right, how='inner', on=None)
参数说明:
left与right:两个不同的DataFrame。
how:指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inner。
on : 指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键。
数据库连接方式说明参考: SQL的四种连接-左外连接、右外连接、内连接、全连接
举例说明:
举例一(说明:使用重叠列key作为连接键。使用内连接:新的key列中的元素是df2和df1的key列中元素的交集,所以其中没有c键)
df1=DataFrame({'key':['a','b','b'],'data1':range(3)})
df2=DataFrame({'key':['a','b','c'],'data2':range(3)})
pd.merge(df1,df2) #没有指定连接键,默认用重叠列名,没有指定连接方式,data1和data2都是 0 1 2
#输出结果是:
data1 key data2
0 0 a 0
1 1 b 1
2 2 b 1
举例二(说明:使用左外连接方式:包括df2和df1的连接键的交集和左表(df2)中的所有连接键,右表(df1)中中没有键值用NaN补充)
pd.merge(df2,df1,how='left') #通过how,指定连接方式
输出结果是:
data2 key data1
0 0 a 0
1 1 b 1
2 1 b 2
3 2 c NaN
同理可得右外连接方法;另外全外连接取得是两个表中的所有键值,也就是键值元素的并集。
举例三:(说明:多键连接时用on参数指定连接键。下面的一行代码指定key1和key2列为连接键。)
pd.merge(df1,df2,on=['key1','key2']
注:更详尽的Pandas.merge函数说明请参考: http://blog.csdn.net/zutsoft/article/details/51498026