当前位置: 首页 > 知识库问答 >
问题:

从基于另一个数据框的值在pyspark数据框中创建列

漆雕亮
2023-03-14

我有两个pyspark数据帧

DF1 :

person_id   Name  serialNo  Maritalstatus  Location_name

 01         abc      10        M              America    
 02         xyz      13        S              London    
 03         def      14        M              Europe    
 04         qwe      15        M              Australia
 05         asd      16        M              Europe
 06         fgh      17        M              London
 07         aka      18        M              Australia
 08         fgi      19        M              London
 09         aba      20        M              Australia

df2:

Code   Location_Name    Location_Id

111        Australia          AUS    
112        America            USA    
123        London             UK    
124        Europe             EU

我想向df1添加一个列Location_Id,从df2获取匹配的Id,如下所示:

person_id   Name  serialNo  Maritalstatus  Location_name   Location_Id

 01         abc      10        M              America        USA
 02         xyz      13        S              London         UK 
 03         def      14        M              Europe         EU
 04         qwe      15        M              Australia      AUS
 05         asd      16        M              Europe         EU
 06         fgh      17        M              London         UK
 07         aka      18        M              Australia      AUS
 08         fgi      19        M              London         UK
 09         aba      20        M              Australia      AUS

我如何才能做到这一点?

共有1个答案

谢奕
2023-03-14

只需加入Location_name

df1.join(df2, on='Location_name')
 类似资料:
  • 我有两个熊猫数据框 步骤1:根据df1中唯一的“val”在df2中创建列,如下所示: 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'c

  • 问题内容: 我有2个数据框,一个命名为USERS,另一个命名为EXCLUDE。他们两个都有一个名为“电子邮件”的字段。 基本上,我要删除EXERSUDE中包含电子邮件的USERS中的每一行。 我该怎么做? 问题答案: 您可以将和条件一起使用,通过以下方式反转布尔值: 另一个解决方案:

  • 问题内容: 我有一个具有多个列和行的数据框 df1 。简单的例子: 我想创建一个空的数据框 df2, 然后再添加带有计算结果的新列。 目前,我的代码如下所示: …添加两个新列: 有没有更好/更安全/更快的方法呢?是否可以创建一个空的数据帧df2并仅从df1复制索引? 问题答案: 这将创建一个没有列但只有一个索引的DataFrame,并且它将与df1中的索引相同。

  • 问题内容: 我有两个数据框,第一个有1000行,看起来像: 该列具有不同的值,有时会重复,但通常大约有50个唯一值。 第二个数据框包含所有这50个唯一值(50行)以及与这些值关联的酒店: 我的目标是用第二个数据帧的列的相应值替换第一个数据帧的列中的值,或者用相应的值创建该列。当我尝试通过像 我有一个错误,即数据帧的大小不相等,因此无法进行比较 问题答案: 如果将索引设置为另一个df上的“组”列,则

  • 问题内容: 我有一个数据框 我有另一个数据框df2 我希望我的最终数据框看起来像: 即从一个数据框映射到另一个创建新列 问题答案: + 假设您的数据框已经在上排序,则第一次排序调用是多余的,在这种情况下,您可以删除它。 / 或者,显式创建映射。如果您以后要使用它,它将起作用。

  • 问题内容: 我有2个数据框。 我想遍历每行,并检查每个名称是否在中。 如果名称在其中,结果应返回1,否则返回0: 谢谢。 问题答案: 采用 在数据框中显示结果 在系列对象中