Pandas--合并

合并

  • 读入数据集
    在这里插入图片描述

一、append与assign

  1. append方法
    (a)利用序列添加行(必须指定name
    在这里插入图片描述
    (b)用DataFrame添加表
    在这里插入图片描述
  2. assign方法
    该方法主要用于添加列,列名直接由参数指定:
    在这里插入图片描述
    可以一次添加多个列:
    在这里插入图片描述

二、combine与update

  1. comine方法
    comineupdate都是用于表的填充函数,可以根据某种规则填充
    (a)填充对象
    可以看出combine方法是按照表的顺序轮流进行逐列循环的,而且自动索引对齐,缺失值为NaN,理解这一点很重要
    在这里插入图片描述
    (b)一些例子
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (c)combine_first方法
    这个方法作用是用df2填补df1的缺失值,功能比较简单,但很多时候会比combine更常用,下面举两个例子:
    在这里插入图片描述

  2. update方法
    (a)三个特点
    ①返回的框索引只会与被调用框的一致(默认使用左连接,下一节会介绍)
    ②第二个框中的nan元素不会起作用
    ③没有返回值,直接在df上操作
    (b)例子
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、concat方法

concat方法可以在两个维度上拼接,默认纵向凭借(axis=0),拼接方式默认外连接
所谓外连接,就是取拼接方向的并集,而’inner’时取拼接方向(若使用默认的纵向拼接,则为列的交集)的交集
下面举一些例子说明其参数:
在这里插入图片描述
默认状态拼接:
在这里插入图片描述
axis=1时沿列方向拼接:
在这里插入图片描述
join设置为内连接(由于axis=0,因此列取交集):
在这里插入图片描述
join设置为外链接:
在这里插入图片描述
verify_integrity检查列是否唯一:
在这里插入图片描述

key参数用于对不同的数据框增加一个标号,便于索引:
在这里插入图片描述

四、mergejoin

  1. merge函数
    merge函数的作用是将两个pandas对象横向合并,遇到重复的索引项时会使用笛卡尔积,默认inner连接,可选left、outer、right连接
    所谓左连接,就是指以第一个表索引为基准,右边的表中如果不再左边的则不加入,如果在左边的就以笛卡尔积的方式加入
    merge/joinconcat的不同之处在于on参数,可以指定某一个对象为key来进行连接
    同样的,下面举一些例子:
    在这里插入图片描述
    以key1为准则连接,如果具有相同的列,则默认suffixes=(’_x’,’_y’)
    在这里插入图片描述
    以多组键连接:
    在这里插入图片描述
    默认使用inner连接,因为merge只能横向拼接,所以取行向上keys的交集,下面看如果使用how=outer参数
    注意:这里的how就是concatjoin
    在这里插入图片描述
    左连接:
    在这里插入图片描述
    右连接:
    在这里插入图片描述
    如果还是对笛卡尔积不太了解,请务必理解下面这个例子,由于B的所有元素为2,因此需要6行:
    在这里插入图片描述
    validate检验的是到底哪一边出现了重复索引,如果是“one_to_one”则两侧索引都是唯一,如果"one_to_many"则左侧唯一
    在这里插入图片描述
    indicator参数指示了,合并后该行索引的来源
    在这里插入图片描述

  2. join函数
    join函数作用是将多个pandas对象横向拼接,遇到重复的索引项时会使用笛卡尔积,默认左连接,可选inner、outer、right连接
    在这里插入图片描述
    对于many_to_one模式下的合并,往往join更为方便
    同样可以指定key:
    在这里插入图片描述
    多层key
    在这里插入图片描述