2020-12-29

pandas连接

首先说一下为什么会出现连接操作,在现实任务需求中,我们常常需要把两张及以上的表以某一个键组合起来形成一张新的表,之前讲的分组和变形是在一张表上进行的操作,而连接是针对多张表进行操作。

这篇文章主要分三块来写关于连接的操作:关系型连接、方向连接、类连接操作,先简单的叙述一下关系型连接方向连接之间的不同之处,以例子来说明,一般学校在期末的时候或公司在年底的时候都需要做总结,比如学校就需要把各个班的期末成绩都汇总在一起,那么需要以班级作为,来将数据汇总起来。那有时候只是单纯的想把数据拼接起来,我只需要决定在横向还是纵向把数据拼起来就行,不用关心用哪个特征作为键。

一、关系型连接

关系型连接就是需要制定的连接方式,在指定完键值之后,还需要指定连接方式,分别为左连接left,右连接right,内外连接分别是inner,outer。左连接以左边的表为基准,右连接以右边的表为基准,内连接取两个表的共有键,外连接是相当与在内连接的基础上把两个表都独有的数据加进来。
(盗个图)
在这里插入图片描述
注意一点,如果表中的键出现了重复的情况,就用笛卡尔积的形式
什么是笛卡尔积呢:
例如:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
(再盗个图)
在这里插入图片描述
关系型连接在具体的操作过程中主要分为值连接索引连接,具体到pandas中分别对应的是merge和join函数,按我拙略的理解就是,值连接是列方向上的操作,是以某一列中的值作为基准进行拼接,而索引连接是在行方向上,是以行索引为基准。

值连接操作:
在这里插入图片描述
如果我想连接的值,它们对应的列名不一样,那就分别指定连接的值,在merge函数中用left-on和right-on参数。
在这里插入图片描述
索引连接就是用join函数来实现:
在这里插入图片描述
在这里插入图片描述
二、方向连接

方向连接只要依靠的函数是concat,一般较常用的参数是axis表示连接方向(横向还是纵向)join表示连接形式,concat在纵向连接时会根据列索引自动对齐的,默认join=outer,如果你只想取个交集就设为join=inner。

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值