Pandas中join和merge的区别是什么
Pandas提供了各种设施,可以轻松地将Series或DataFrame与各种索引的集合逻辑和连接/合并类型的操作中的关系代数功能结合起来。
连接和合并都可以用来合并两个数据框架,但是连接方法是根据两个数据框架的索引来合并的,而合并方法则更加灵活,允许我们在索引旁边指定两个数据框架的连接列。
让我们首先创建两个数据框来展示这两种方法的效果。
输出:
现在让我们逐一看看这两种方法对数据帧的影响。
join
连接方法需要两个数据框架并在它们的索引上进行连接(技术上,你可以为左边的数据框架选择要连接的列)。如果有重叠的列,连接将希望你在左边数据框架的重叠列名上添加一个后缀。我们的两个数据框架确实有一个重叠的列名P。
示例 :
输出 :
注意索引被保留了,我们有四列。我们也可以用参数_on _单独指定左边数据框架的一个特定列作为连接键,但它仍然会使用右边的索引。
示例 :
输出 :
merge
在基本层面上,合并或多或少地做了与连接相同的事情。这两种方法都是用来将两个数据框架结合在一起,但是merge的功能更多,它需要指定列作为合并键。我们可以用参数_on, _指定重叠的列,也可以用_left_on _和_right_on _参数分别指定。
示例 :
输出 :
在这里,注意到合并方法破坏了索引。
我们可以用_left_index _或_right_index _参数明确指定我们是根据索引来合并的。
示例 :
输出 :