繁体   English   中英

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

[英]join only two columns from different data frames

我有一个看起来像这样的数据框:

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

数据框2:

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

因此,如果来自第一个 dataframe 的 SKU 与来自第二个 df 的 sku 值匹配,它应该给出其标题值。 如果第一个 dataframe 中的 sku 值在第二个 dataframe 中不存在,则标题应为 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM