[python学习笔记]合并数据集中merge()、join()和concat

系统 1673 0

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,不保留连接轴上的索引,产生一组新的索引


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论