2017-04-21 73 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