0
点赞
收藏
分享

微信扫一扫

Pandas知识点-合并操作join


Pandas知识点-合并操作join

在Pandas中,join()方法也可以用于实现合并操作,本文介绍join()方法的具体用法。

一、基础合并操作

Pandas知识点-合并操作join_Pandas合并join

join(other): 将一个或多个DataFrame加入到当前DataFrame中,实现合并的功能。other参数传入被合并的DataFrame,通常是传入一个DataFrame,将两个DataFrame合并到一起,如果需要合并多个,则用列表或元组的方式传入(合并多个DataFrame需要满足一些条件,本文会介绍)。

join()方法合并的结果默认以左连接的方式进行合并,默认的连接列是DataFrame的行索引,并且,合并两个DataFrame时,两个DataFrame中不能有相同的列名(不像merge()方法会自动给相同的列名加后缀)。

二、连接方式

Pandas知识点-合并操作join_合并操作join_02

how: 指定合并时使用的连接方式,连接方式有四种,默认为left。

inner

内连

取行索引的交集

outer

外连

取行索引的并集

left

左连

使用左边df的行索引

right

右连

使用右边df的行索引

三、设置用于连接的列

Pandas知识点-合并操作join_Pandas_03

on: 指定合并时调用join()方法的DataFrame中用于连接(外连,内连,左连,右连)的列。默认为None,join()方法默认是使用行索引进行连接。on参数指定连接列时,只能指定调用join()方法的DataFrame,而传入join()方法的DataFrame还是用行索引进行连接。

观察上面的例子,left1中有key列,而right1中没有key列,不过right1的行索引可以与left1的key列可以进行匹配,用左连接的方式得到结果。这个结果相当于如下的merge()操作。

Pandas知识点-合并操作join_Pandas join_04

on参数也可以指定多个列作为连接列。

Pandas知识点-合并操作join_Pandas合并join_05

on参数指定多个列作为连接列时,这些列都要在调用join()方法的DataFrame中,此时,传入join()方法的DataFrame必须为多重行索引(MultiIndex),且与on指定的列数相等,否则会报错。

假如第一个DataFrame是单行索引,第二个DataFrame是多重行索引,此时如果不指定on参数,就必须给两个DataFrame的行索引命名,并且单行索引的索引名要包含在多重行索引的索引名中,才能够合并成功,否则会报错。

四、设置相同列名的后缀

Pandas知识点-合并操作join_合并操作join_06

lsuffix: 当两个DataFrame中有相同的列名时,使用lsuffix参数给调用join()的DataFrame设置列名后缀。

rsuffix: 当两个DataFrame中有相同的列名时,使用rsuffix参数给传入join()的DataFrame设置列名后缀。

lsuffix和rsuffix默认为空字符串,合并两个DataFrame时,join()方法不会自动给相同的列名加后缀进行区分,如果不给相同的列设置后缀会报错。只有给lsuffix和rsuffix指定值之后(即使指定相同的值也可以),合并才会成功。

五、合并多个DataFrame

Pandas知识点-合并操作join_Pandas知识点_07

join()方法可以用于合并多个DataFrame,传入的时候用列表或元组的方式传入。此时不用指定lsuffix和rsuffix,即使指定了也不会生效,合并多个DataFrame时,如果有相同的列名,会自动加上_x和_y的后缀,重复多次也会循环加_x和_y。

合并多个DataFrame时,只支持用DataFrame的行索引进行连接,不能使用on参数。默认使用的是左连接,可以设置成其他的连接方式。

以上就是Pandas合并方法join()的介绍,如果需要本文代码,可以扫码关注公众号“Python碎片”,然后在后台回复“pandas14”关键字获取完整代码。

 

Pandas知识点-合并操作join_Pandas合并join_08

 

举报

相关推荐

0 条评论