仅连接来自不同数据框的两列

join only two columns from different data frames

我有一个如下所示的数据框:

id  sku  status
1.  jd   NULL
2.  io.  DONE

dataframe2:

id  sku  title   role
6   jd   Apple   manager
3.  xz.  Null    employee

我想在“SKU”列中加入这两个,这样我就会得到一个新的 df,如下所示:

id  sku  status title
1.  jd   NULL.  Apple
2.  io.  DONE.  NULL

因此,如果第一个数据帧中的 SKU 与第二个 df 中的 sku 值匹配,它应该给出其标题值。如果第一个数据框中的 sku 值不存在于第二个数据框中,则标题应该为 NULL。我怎样才能做到这一点?外部连接似乎不起作用。

df = pd.merge(dfFirst,dfSecond[['sku','title']],how='outer', on='sku')
df.head()

您可以使用 左连接,而不是使用 外连接,如下所示:

df = pd.merge(dfFirst,dfSecond[['sku','title']],how='left', on='sku')

左连接 仅使用来自左框架的键,类似于 SQL 左外连接;保留键顺序。因此,它会给你想要的布局。

结果:

注:NULL经过Pandas处理后会被解释为NaN

print(df)


   id  sku status  title
0   1   jd    NaN  Apple
1   2  io.   DONE    NaN