基于公共列将数据框与另一列中的列连接起来
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 连接起来? [复制]
有没有办法将数据帧的一列中的所有行与另一个数据帧的另一列(火花)中的所有行进行比较?
返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配