本文概述
- 识别联接键
- 内部联接
- 左联接
- 句法
- 参数
当一个DataFrame是一个查找表, 其中包含添加到另一个DataFrame中的其他数据时, join()方法通常很有用。这是一种方便的方法, 可以将两个索引不同的DataFrame的列合并为一个DataFrame。
识别联接键为了确定适当的连接键, 首先, 我们必须定义在DataFrame之间共享的必填字段。这两个DataFrame都由具有相同名称并且包含相同数据的列组成。
内部联接内部联接可以定义为最常用的联接。基本上, 其主要任务是基于连接键将两个DataFrame组合在一起并返回一个新的DataFrame。返回的DataFrame仅包含在两个原始DataFrame中都具有匹配值的选定行。
左联接如果我们想在不丢失任何数据的情况下向DataFrame中添加一些信息, 我们可以简单地通过称为” 左外部连接” 或” 左连接” 的另一种类型的连接来做到这一点。
像内部联接一样, 左联接也使用联接键来组合两个DataFrame, 但是与内部联接不同, 它会返回左侧DataFrame的所有行, 即使那些联接键不包含右侧DataFrame中值的行也是如此。
句法
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
参数其他:指的是DataFrame或Series。
在这种情况下, 索引应类似于列之一。如果传递了Series, 则必须设置named属性, 以将其用作结果联接的DataFrame中的列名。
on:这是一个可选参数, 它引用类似数组或str的值。
它引用调用方中要加入索引的列或索引级别名称。否则, 它将加入索引索引。如果存在多个值, 则另一个DataFrame必须具有MultiIndex。就像Excel VLOOKUP操作一样, 如果调用的DataFrame中尚未包含数组, 则可以将其作为连接键传递。
方法:指的是” 左” , “ 右” , “ 外” , “ 内” 值, 主要用于处理两个对象的操作。默认值为how。
- left:如果指定了on, 则使用调用框架的索引或列。
- 右:它使用另一个索引。
- external:如果将参数on与其他索引一起指定, 则用于形成调用框架的索引或列的并集, 并按字典顺序对其进行排序。
- inner:如果将参数on与其他索引一起指定, 则用于形成调用框架的索引或列的交集。因此, 由于这个原因, 它保留了调用对象的顺序。
rsuffix:它是指一个字符串值, 其默认值为” ” 。它使用右框架重叠列中的后缀。
【Pandas DataFrame.join()用法介绍】sort:由一个布尔值组成, 该布尔值通过join键按字典顺序对结果DataFrame进行排序。如果我们传递False值, 则联接键的顺序主要取决于联接类型, 即方式。
示例:下面的示例演示join()函数的工作方式。
import pandas as pdinfo = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], 'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']})x = pd.DataFrame({'key': ['K0', 'K1', 'K2'], 'B': ['B0', 'B1', 'B2']})info.join(x, lsuffix='_caller', rsuffix='_x') info.set_index('key').join(x.set_index('key'))info.join(x.set_index('key'), on='key')
输出
keyAB0K0A0B01K1A1B12K2A2B23K3A3NaN4K4A4NaN5K5A5NaN
示例2:下面的示例将两个MultiIndex连接在一起:
import pandas as pdleftindex = pd.MultiIndex.from_product([list('xyz'), list('pq'), [1, 2]], names=['xyz', 'pq', 'num'])left = pd.DataFrame({'value': range(12)}, index=leftindex)left
输出
valuexyz pq num x p 1 02 1q 1 22 3y p 1 42 5q 1 62 7z p 1 82 9q 1 102 11
推荐阅读
- Pandas melt()用法介绍
- Kotlin之let,apply,with,run函数区别(转)
- 支付宝支付之App支付
- xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
- Android开发中常见的设计模式——单例模式
- ARC-100C - Linear Approximation
- spring基础----事件(Applicaition Event)
- Appium-实现手势密码登陆
- 012_call和apply区别