8. 比较concat, append, merge, join

博客主要对比了concat、append、merge、join连接DataFrame的方法。从连接方向、对象、方式等方面进行比较,如concat可横纵连接,append只能纵向等。还给出函数原型并总结,按行连接可选join和merge,按列连接优先选append,且这4个函数都非原地操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8. 比较concat, append, merge, join 连接DataFrame

8.1 比较

  1. 连接方向
    • concat可以横向纵向连接对象;
    • appned是纵向连接对象;
    • merge和join是横向连接对象。
  2. 连接对象
    • concat,append一次可以连接多个对象,可以是多个Series、DataFrame或者2者混合
    • merge,join一次只能连接2个
    • append可以为DF追加行,要求行是Series,DF或字典
  3. 连接方式
    • concat左右连接时,不能指定连接键,只能使用index作为连接键;只提供inner和outer的连接方式
    • merge提供了更多连接方式:{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’},join提供:{‘left’, ‘right’, ‘outer’, ‘inner’}

8.2 函数原型

pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=False)

pandas.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, validate=None)

DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)

8.3 总结

按行连接可以选择concat,join,merge,满足需求的情况下就选join和merge。因为书写方便,可以写成df1.join(...).
按列连接可选concat,append,优先选append。原因同样是书写方便。
要注意,这4个函数都不是原地的。比如df1.append(df2)并没有修改df1,需要写成df1=df1.append(df2)

参考:
Merge, join, concatenate and compare

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值