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

yizhihongxing

首先,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的to_datetime时间转换使用及学习心得

    Pandas 的 to_datetime() 时间转换使用及学习心得 Pandas 是 Python 下一个非常常用的数据处理库,to_datetime() 方法是 Pandas 中处理日期时间数据的重要方法之一。它可以将字符串、时间戳等格式的时间数据转换为 Pandas 中的日期时间格式,并且支持多种 datetime 格式的识别,极大地增强了 Panda…

    python 2023年5月14日
    00
  • Pandas数据离散化原理及实例解析

    Pandas数据离散化原理 首先,我们需要了解什么是数据离散化。数据离散化指的是将连续数值型数据转换成为离散数据的过程,其目的通常是将连续型数据划分为若干个离散的区间,便于数据的处理和分析。 而Pandas提供了非常便利的数据离散化工具——cut函数。cut函数可以根据设定的bins,将一组数据划分为不同的区间,返回一个Series类型的离散化后的数据。 c…

    python 2023年5月14日
    00
  • 使用Pandas的Series方法绘制图像教程

    下面是使用Pandas的Series方法绘制图像的完整攻略。 第一步:导入Pandas和Matplotlib库 import pandas as pd import matplotlib.pyplot as plt 第二步:创建Series对象 data = pd.Series([1, 3, 5, 7, 9]) 第三步:绘制线形图 data.plot() p…

    python 2023年5月14日
    00
  • 如何用Python将Pandas DataFrame写成TSV

    将Pandas DataFrame写成TSV需要使用Pandas中的to_csv函数,并指定分隔符为制表符\t。下面是详细的步骤和代码实现: 导入Pandas库 import pandas as pd 创建DataFrame示例数据 df = pd.DataFrame({‘Name’: [‘Tom’, ‘Jack’, ‘Steve’, ‘Ricky’], ‘…

    python-answer 2023年3月27日
    00
  • Pandas DataFrame结构对象的创建与访问方法

    Pandas DataFrame结构是什么? Pandas DataFrame 是一种二维、大小可变且表格型的数据结构,它可以存储许多类型的数据并提供多种数据操作功能。 DataFrame 既有行索引也有列索引,类似于一个电子表格或 SQL 表格,能够更加方便地处理数据。结构如下图: Pandas DataFrame 的作用主要有: 数据的读取和写入:可以通…

    2023年3月4日
    00
  • 利用Python如何将数据写到CSV文件中

    当我们需要将数据保存到本地的时候,CSV是一种非常常见的数据格式。Python作为一门强大的脚本语言,也提供了非常方便的方法帮助我们把数据写到CSV文件中。 下面是利用Python将数据写到CSV文件的完整攻略: 第一步:导入必要的Python模块 要写入CSV文件,我们需要导入Python自带的csv模块。代码如下: import csv 第二步:定义CS…

    python 2023年5月14日
    00
  • 在pandas中对行进行分组

    Pandas是用Python进行数据处理和数据分析的一个核心库。其中一项关键的功能是能够对数据进行分组和归纳。下面是对行进行分组的完整攻略。 步骤一:加载数据 首先需要加载数据。可以从CSV文件、数据库、其他文件和数据源中加载数据。这里以读取CSV文件为例演示: import pandas as pd # 加载csv文件 df=pd.read_csv(&qu…

    python-answer 2023年3月27日
    00
  • Pandas中不同类型的连接

    在Pandas中,连接是将不同的数据集合并成一个更大的数据集的实用操作。Pandas提供了多个不同类型的连接方法,包括内连接、左连接、右连接和外连接。下面逐一进行详细讲解。 内连接 内连接是连接操作中最常见的一种,它只保留两个数据集中共有的部分,即取两个数据集的共同部分。在Pandas中,使用merge()方法实现内连接。参数how=’inner’表示使用内…

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