熊猫:在半重叠列上连接两个数据帧

时间:2017-04-21 08:13:15

标签: python pandas join dataframe

设置向上

假设我有两个panda DataFrame:df1,其大小为5 x Kdf2大小为3 x K

|  key | rest ...             |  key | rest ...
----------------              ----------------
|  A1  |   ⋮                  |  A1  |   ⋮
|  A2  |   ⋮                  |  A3  |   ⋮
|  A3  |   ⋮                  |  A4  |   ⋮
|  A4  |   ⋮
|  A5  |   ⋮

在我的实际数据集中,key包含名称(例如,不是A2),半重叠不包含任何模式。

<小时/> 的问题

我想在df1列上加入df2key,其中包含半重叠&#39;在A1A3A5中。

<小时/> 的计划

我以为我可以将空行添加到df2,例如两个空行到df2,其值为A2A5key,然后加入DataFrame。但是,我需要确定df2中缺少哪些行。

也许我可以在键上构建一个for循环,当没有键匹配时,它会为key创建一个空行An。我不确定如何在两个数据帧上构建for循环。

也许有一个简洁的命令一次加入框架,填入空行?

编辑:刚刚意识到它可能是两种方式,即df2中的密钥不在df1中。但我想先运行一个循环,如前所述&#39;检查&#39;从df1df2的密钥,然后检查从df2df1的密钥应该有效。

1 个答案:

答案 0 :(得分:1)

对于&#39;半重叠&#39;如果您想在结果中保留两个数据框中不匹配的行,请使用outer merge

df1.merge(df2, on='key', how='outer')