1 merge()
merge()默认的是按照各个表中列名重叠列进行内连接(how=‘inner’),参数如下:
merge(left,right,how='inner',on=None,left_on=None,right_on=None,
left_index=False,right_index=False,sort=False,suffixes=('_x','_y'),copy=True,indicator=False)
其中:
on指定合并时依据的列名,单列时后跟字符串,多列时后跟字符串列表
how 表示连接方式,inner是内连接(交集),outer是外连接(并集),left和right表示左连接与右链接,即使用左(右)表中的所有键
suffixes 参数指定当两个表合并后有相同的列名时,在列名上加的前缀,默认为元组(’_x’,’_y’)
left_on,right_on,左(右)侧DataFrame中用作连接键的列
left_index,right_index,将左(右)侧DataFrame中的行索引用作连接键的列
sort,根据连接键对合并后的数据进行排序
indicator:在 0.17.0中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)
注意事项:
当使用merge()进行多对多合并连接时,结果产生的是行的笛卡尔积。left表中有3个’b’行,right表中有2个’b’行,那么返回结果中就有6个’b’行,连接方式只影响出现在结果中的不同键的值
2 join()
join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
其中:
join()除了默认的使用的是左连接,保留左表的行索引外,参数含义与merge()基本相同,不再赘述。
3 concat()
concat()属于轴向连接,可以指定按某个轴进行连接,可用于索引的合并
concat(obj,axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False, copy=True):
其中:
axis,指定连接的轴向,默认是0(跨行连接)
join,指明轴向上的索引是按照交集(inner)还是并集(outer)来合并
join_axes,指明用于其他n-1条轴的索引,不执行交集/并集运算
keys,与连接对象有关的值,用于形成连接轴向上的层次化索引,可以是任意值的列表或数组、元组数组以及数组列表
levels,指定用作层次化索引各级别上的索引
names,用于创建层次化索引各分层级别的名称
verify_interity,检查结果对象新轴上的重复情况,如果发现则引发异常
ignore_index,不保留连接轴上的索引,产生一组新的索引