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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值