join() 方法

基于一个公共键将来自两个数据帧的列组合为单个数据帧。

语法

左数据帧名称.join(other = 右数据帧名称, lkey = ["左键列", "...n"], lcolumns = ["左列", "...n"], rkey = ["右键列", "...n"], rcolumns = ["右列", "...n"], join_type = "inner"|"left"|"right"|"outer"|"unmatched")

参数

名称 描述
other = 右数据帧名称 右数据帧的名称。
lkey = ["左键列", "...n"]

左数据帧中的一个或多个键列。

列被按照您列出它们的顺序使用。如果您联接一个以上的列,则相应的列在 lkeyrkey 中必须具有相同的顺序。

说明

左键值和右键值的匹配区分大小写。只有在其大小写也完全相同时,匹配值才被视为完全相同。

lcolumns = ["左列", "...n"]

可选

左数据帧中要包括在联接输出数据帧中的列。列被按照您列出它们的顺序包括。

如果您省略 lcolumns,则左数据帧中的所有列都被包括在联接输出数据帧中。

如果您想要排除所有左列,请指定 lcolumns = []

说明

一个或多个 lkey 列被自动包括在输出数据帧中。您无须在 lcolumns 中重新指定它们。

rkey = ["右键列", "...n"]

右数据帧中的一个或多个键列。

列被按照您列出它们的顺序使用。如果您联接一个以上的列,则相应的列在 rkeylkey 中必须具有相同的顺序。

说明

左键值和右键值的匹配区分大小写。只有在其大小写也完全相同时,匹配值才被视为完全相同。

rcolumns = ["右列", "...n"]

可选

右数据帧中要包括在联接输出数据帧中的列。列被按照您列出它们的顺序包括。

如果您省略 rcolumns,则右数据帧中的所有列都被包括在联接输出数据帧中。

如果您想要排除所有右列,请指定 rcolumns = []

如果您使用 unmatched 联接类型,则 rcolumns 被忽略。

说明

一个或多个 rkey 列被自动包括在输出数据帧中。您无须在 rcolumns 中重新指定它们。

join_type = "inner" | "left" | "right" | "outer" | "unmatched"

可选

要执行的联接的类型。

如果您省略 join_type,则默认情况下会执行内部联接。

联接类型 联接输出数据帧包含:

"inner"

所有匹配的左行和所有匹配的右行

与左右数据帧之间的每个匹配对应的一行

"left"

所有左行(匹配的和不匹配的)和所有匹配的右行

"right"

所有右行(匹配的和不匹配的)和所有匹配的左行

"outer"

所有左行和所有右行(匹配的和不匹配的)

"unmatched"

不匹配的左行

返回

HCL 数据帧。

示例

联接两个数据帧以便发现可能还是供应商的员工

下面的示例使用地址作为公共键列(Address 列和 Vendor_Street 列)联接 employees 数据帧(左)和 vendors 数据帧(右)。

join() 方法创建一个包含匹配的左行和右行的新数据帧,从而生成一个包含任何具有相同地址的员工和供应商的列表。

employee_vendor_match = employees.join(other = vendors, lkey = ["Address"], lcolumns = ["Empno", "First", "Last"], rkey = ["Vendor_Street"], rcolumns = ["Vendor_No", "Vendor_Name"], join_type = "inner")

联接两个数据帧,作为发现不具有匹配客户的应收帐款行的一种方式

下面的示例使用客户编号 (CustNo) 作为公共键列联接 accounts_receivable 数据帧(左)和 customer 数据帧(右)。

join() 方法使用 unmatched 联接类型,用不匹配的左行创建一个新的数据帧,从而产生不与任何 customers 行相关联的 accounts_receivable 行的列表。

customers_not_found = accounts_receivable.join(other = customers, lkey = ["CustNo"], lcolumns = ["Due", "Amount"], rkey = ["CustNo"], join_type = "unmatched")