Python Pandas – INNER JOIN和LEFT SEMI JOIN的区别

首先,INNER JOIN和LEFT SEMI JOIN都是数据关联操作,用于根据一个或多个指定的联接键连接两个或多个表或数据框。它们在连接操作的结果上是不同的,下面具体讲解。

  1. INNER JOIN

INNER JOIN是一种基本的联接方式,它只返回两个表中联接键相同的行。它返回的数据包括联接键在两个表中都有的行,即“内部完全匹配”。

例如,有两个数据框df1和df2,它们的结构如下所示:

df1:

   key  value1
0   A      1
1   B      2
2   C      3

df2:

   key  value2
0   A      10
1   D      20
2   E      30

如果我们对df1和df2进行INNER JOIN操作:

pd.merge(df1, df2, on='key', how='inner')

则返回的结果将只包含key在df1和df2中都存在的行,即:

   key  value1  value2
0   A      1      10
  1. LEFT SEMI JOIN

LEFT SEMI JOIN是一种只返回左表中有匹配行的联接方式。它的结果将只包含左表中存在的联接键的行,且没有右表相关的信息。

LEFT SEMI JOIN等价于LEFT JOIN操作,但是只选取右表中包含在联接键中的行,然后把结果集限制在左表中。

例如,仍然使用上述的df1和df2,通过LEFT SEMI JOIN操作:

pd.merge(df1, df2, on='key', how='left')

则返回的结果仅包括df1中存在的联接键A、B和C,右表中的D和E被排除,结果为:

   key  value1  value2
0   A      1      10
1   B      2      NaN
2   C      3      NaN

简单来讲,INNER JOIN返回的结果包含了两个表中完全匹配的行,而LEFT SEMI JOIN仅返回左表中存在的匹配行,右表中不存在的行被排除在外。

以上就是Python Pandas中INNER JOIN和LEFT SEMI JOIN的区别,希望能够帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Pandas – INNER JOIN和LEFT SEMI JOIN的区别 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 如何使用Pandas的Quantile打印系列中超过75%的数值

    使用Pandas的Quantile方法可以轻松地对数据进行分位数切割,从而对数据中的各个百分位数进行分析。下面是如何使用Pandas的Quantile打印系列中超过75%的数值的完整攻略。 准备数据 首先我们需要准备一组数据,在这里我们使用Pandas内置的数据集”titanic”作为例子。我们首先导入必要的库,然后使用Pandas的read_csv方法读取…

    python-answer 2023年3月27日
    00
  • python2.7到3.x迁移指南

    Python2.7到3.x迁移指南 Python语言从2.7版本升级到3.x版本后,有一些重要的语法和功能改变。如果你正在将Python2.7代码迁移到Python3.x,你需要注意以下内容。 使用2to3工具 2to3是Python3.x自带的工具,可以将Python2.7代码转换为Python3.x代码。它可以通过命令行或者GUI工具使用。 在命令行中运…

    python 2023年5月14日
    00
  • 如何在Python中把分类数据转换成二进制数据

    在Python中把分类数据转换成二进制数据可以采用哑变量编码(Dummy Variable Encoding)的方法。哑变量编码可以将分类数据转换成二进制数据,解决了大部分机器学习算法只能使用数值数据的问题。下面给出一个完整的Python代码示例: import pandas as pd # 构造一个包含分类数据的DataFrame df = pd.Data…

    python-answer 2023年3月27日
    00
  • Pandas中八个常用option设置的示例详解

    首先,我们需要了解什么是Pandas中的option设置。Pandas有很多可以配置的选项,这些选项可以通过Pandas的API进行设置,用于修改默认的行为或者根据需要调整输出。选项可以被设置为具体的值,比如True或False等等。 一般来说,正确的设置选项可以帮助我们更加方便的进行数据处理和分析,因此,学会使用Pandas的option选项可以使我们更加…

    python 2023年5月14日
    00
  • 如何在Pandas数据框架中添加标题行

    要在pandas数据框架中添加标题行(也被称为列名),可以按照以下步骤操作: 1.首先创建一个数据框架。可以使用以下代码创建一个数据框架: import pandas as pd df = pd.DataFrame({‘col1’:[1, 2, 3], ‘col2’:[4, 5, 6], ‘col3’:[7, 8, 9]}) print(df) 输出: co…

    python-answer 2023年3月27日
    00
  • Python引用(import)文件夹下的py文件的方法

    当我们想要在一个Python文件中引用(import)文件夹下的其他.py文件时,有以下几种方法: 方法一:使用sys.path.append()添加路径 首先需要用sys.path.append()将该文件夹的路径添加到Python的搜索路径中,这样才能让Python找到该文件夹下的.py文件。在本例中,假设我们想要引用文件夹 file夹 下的py文件 m…

    python 2023年5月14日
    00
  • 基于标签的Pandas数据框架索引

    基于标签的索引(Label-based indexing)是Pandas数据框架中一种基于标签或名称的索引方式,其优点在于易于理解和使用,并且不容易产生歧义,因此得到广泛地应用。在本攻略中,我们将详细讲解如何使用基于标签的索引方式来操作Pandas数据框架。以下是我们的操作流程: 选择列标签 在Pandas数据框架中,我们可以通过列标签(也称为列名)来选择数…

    python-answer 2023年3月27日
    00
  • 计算Pandas数据框架中的所有行或满足某些条件的行

    计算Pandas数据框架中的所有行或满足某些条件的行需要用到Pandas库中的基础操作。 一、提取所有行 要提取所有行可以直接使用df,其中df代表数据框架的名称。例如: #导入Pandas库 import pandas as pd #创建数据框架 data = {‘name’: [‘张三’,’李四’,’王五’], ‘age’:[21,24,23], ‘ge…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部