首页 > 其他分享 >Pandas Dataframe合并连接Join和merge 参数讲解

Pandas Dataframe合并连接Join和merge 参数讲解

时间:2024-04-04 13:00:45浏览次数:28  
标签:index None right Join Dataframe merge 连接 left

文章目录

函数与参数分析

在pandas中主要有两个函数可以完成table之间的join

Join的函数如下:
DataFrame.join(other, on=None, how=‘left’, lsuffix=‘’, rsuffix=‘’, sort=False, validate=None)

merge的函数如下:
DataFrame.merge(right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=None, indicator=False, validate=None)

下面会对于参数进行分别的解释。而通过可以调试的参数和

other

other是另外一个DataFrame或者Series,说明了join的两个表为DataFrame和other

on

on表示根据什么键进行连接,这个键可以是一个或者多个。如果这个连接的键在两个表中都存在就直接写就好,如果是一个就写一个String,多个就用list。

其中merge是需要给键值的。join默认的是使用索引的值。

如果不存在的话,那么则可以规定left_on和right_on。但是这个时候只能用merge, join是不支持这一点的。(merge的代码如下)

result = df1.merge(df2, left_on='key1', right_on='key2')

但是如果是连接多个键的名字都不同的时候,(比如df1.key1 == df2.key2 , df1.key3 == df2.key4) 那么则最好先通过rename的函数对Dataframe进行改名,之后再merge。

how

how表示的是连接的方式,一般包含下面的参数,默认是左连接
join:
how{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, default ‘left’
merge:
how{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, default ‘inner’
这里可以看见两者默认的连接方式是不同的

不同的连接方式如下:
在这里插入图片描述
当使用cross的时候不需要指定on啥,因为会把左右连接的所有的可能都返回,并不在乎谁和谁相等。

lsuffix, rsuffix, suffixes

如果有非连接key出现同名的情况,可以用此参数来规定区别两个列分别来自于哪个表。

left_index, right_index

这个是merge中的参数,当设置为True的时候,意思是使用索引进行连接。

标签:index,None,right,Join,Dataframe,merge,连接,left
From: https://blog.csdn.net/m0_46716894/article/details/137365693

相关文章

  • MySQL UPDATE JOIN 根据一张表或多表来更新另一张表的数据
    当使用MySQL时,经常需要根据一张表或多张表的数据来更新另一张表的数据。这种情况下,我们可以使用UPDATE语句结合JOIN操作来实现这一需求。本文将介绍MySQL中使用UPDATEJOIN的技术。什么是UPDATEJOINUPDATEJOIN是MySQL中一种结合UPDATE语句和JOIN操作的技术,用于根据一张表或多......
  • 执行计划中的NestLoop对比HashJoin对比
    执行计划中的nestloopjoin对比hashjoin两种join方式的定义NESTELOOP:在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行。两个概念:驱动表(外部表)和内部表,这里用表这个次其实不是很准确,外部表和内部表可以是某张表的结果集。在执行计划中如何区......
  • lightdb 支持 merge partitions
    背景Oracle中支持很多种分区管理操作。其中mergepartitions会将多个连续分区合并成一个分区。lightdb24.1中支持了该功能。mergepartitions功能支持list和range分区,不支持hash分区。用例range分区CREATETABLEmeasurement(city_idintnotnul......
  • array_merge 和 [] 追加元素在处理数组时的区别
    $array1=[['id'=>1,'name'=>'商品A','quantity'=>2],['id'=>2,'name'=>'商品B','quantity'=>1],];$array2=[['id'=>3,�......
  • Thread join()的使用场景和原理
    1、使用场景一般情况下,主线程创建并启动子线程,如果子线程中执行大量耗时运算,主线程可能早于子线程结束。如果主线程需要知道子线程的执行结果时,就需要等待子线程执行结束。主线程可以sleep(xx),但这样的xx时间不好确定,因为子线程的执行时间不确定,join()方法比较合适这个场景。......
  • 执行计划】Oracle 11gR2使用Full outer Joins执行计划完成全外连接查询
    1.创建实验表并初始化实验数据sys@ora11g>select*fromv$version;BANNER------------------------------------------------------------------------OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-ProductionPL/SQLRelease11.2.0.1.0-ProductionCORE  ......
  • Java HashMap merge() 方法
    JavaHashMapmerge()方法hashmap.merge(key,value,remappingFunction)注:hashmap是HashMap类的一个对象。参数说明:key-键value-值remappingFunction-重新映射函数,用于重新计算值菜鸟教程链接Ifthespecifiedkeyisnotalreadyassociatedwithavalueor......
  • MogDB/openGauss中merge的语法解析
    MogDB/openGauss中merge的语法解析近期了解学习了MogDB/openGauss中merge的使用,merge语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入。简单来说就是有则更新,无则插入,语句简洁,效率高。下面展示MogDB/openGauss中merge的语法openGauss=#\hmergeCo......
  • ODBC批量merge中出现主键冲突的分析
    ODBC批量merge中出现主键冲突的分析一、文档概括客户某个merge语句运行时,发生主键冲突报错。经分析,其原因如下:由于merge语句中,ON里的判断条件(谓词)中存在带精度定义的数字字段,在绑定变量传递过程中,驱动将数值高精度数字传过去,而数据库内的数据已经做了精度限制,导致在......
  • SQL 查询 exist join in 的用法和相应的适用场景 (优化查询)
    在SQL中常用的存在的关联查询existjoinin,优化查询一、“查询A表中在(或者不在)B表中的记录”1、join/in/exists都可以用来实现,,这种查询,在查询的两个表大小相当的情况下,3种查询方式的执行时间通常是:exists<=in<=join当表中字段允许NULL时,notin的方式最慢;note......