基于公共列将数据框与另一列中的列连接起来

Posted

技术标签:

【中文标题】基于公共列将数据框与另一列中的列连接起来【英文标题】:Join a dataframe with a column from another, based on a common column 【发布时间】:2019-04-17 12:54:13 【问题描述】:

我有两个 pyspark 数据框:

|  A  |  B  |  C  |
| 21  | 999 | 1000|
| 22  | 786 | 1978|
| 23  | 345 | 1563|

|  A  |  D  |  E  |
| 21  | aaa | a12 |
| 22  | bbb | b43 |
| 23  | ccc | h67 |

想要的结果:

|  A  |  B  |  C  |  E  |
| 21  | 999 | 1000| a12 |
| 22  | 786 | 1978| b43 |
| 23  | 345 | 1563| h67 |

我尝试使用join,甚至df1.join(df2.E, df1.A == df2.A)都无济于事。

【问题讨论】:

pandas: merge (join) two data frames on multiple columns的可能重复 df1.join(df2, "A").select("A", "B", "C", "E") 【参考方案1】:

我认为这段代码可以满足您的要求:

joinedDF = df1.join(df2.select('A', 'E'), ['A'])

【讨论】:

【参考方案2】:

当您尝试使用函数 join 加入 2 个数据框时,它需要 3 个参数。

    arg-1 : 您需要加入的另一个数据框。 arg-2 :您需要加入数据框的列。 arg-3 :您要执行的连接类型。默认情况下它的内部连接。

PFB 示例代码。

df1.join(df2, df1.id == df2.id, 'outer')

您可以找到更多详细信息here。

问候,

尼拉杰

【讨论】:

以上是关于基于公共列将数据框与另一列中的列连接起来的主要内容,如果未能解决你的问题,请参考以下文章

如何基于每个数据框中具有不同名称的两列将两个数据框与 dplyr 连接起来? [复制]

仅返回一列中的日期与另一列中的日期最接近的行?

有没有办法将数据帧的一列中的所有行与另一个数据帧的另一列(火花)中的所有行进行比较?

返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配

在python中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?

如何将一列的列值组合到 MySQL 中的另一列中?