2017-04-21 74 views
0

建立熊猫:上半重叠柱连接两个dataframes

假设我有两个熊猫DataFrames:df1,这是大小5 x Kdf2是大小3 x K的,

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

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


问题

我想加入df1df2A1A3A5key柱,其 '半重叠'。


计划

我想我可以空行df2,例如添加两个空行df2的值为A2A5key,然后加入DataFrame。但是,那么我需要找出哪些行在df2中缺失。

也许我可以构造一个for循环在键上,当没有键匹配时它会创建一个空行,对于key缺少An?我不知道如何构建两个数据框的for循环。

也许有一个整齐的命令一次加入框架,填补空行?

编辑:刚才意识到它可能是两种方式,即df2中有键不在df1。但我想运行一个循环,首先检查从df1df2的密钥,然后检查从df2df1的密钥应该工作。

+0

听起来像是你想要一个外连接。查看关于[合并,连接和连接]的Pandas文档(http://pandas.pydata.org/pandas-docs/stable/merging.html)。 –

回答

0

对于“半重叠”加入,如果你指的是在结果来自dataframes保持不匹配的行,然后用outer merge

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

谢谢。那就是诀窍。 – LucSpan