2017-07-13 17 views
1

我有兩個數據幀,df_originaldf_update,都與multiindex。我如何更新兩個數據框?

我想更新df_originaldf_update,其中鍵的值相匹配,任何新數據添加從df_updatedf_original

我該怎麼做?

(我試過df.updatedf.merge,但似乎無法找到一個乾淨的解決方案)。

+0

我們可能需要一些樣品和預期輸出能夠看到你想要做的事情。 –

+1

如果沒有示例數據集,很難回答,但看起來您正在描述'df_original.combine_first(df_update)'。 – ayhan

+1

@ayhan combine_first就是答案!如果您將其作爲正確答案提交,我會將其標記爲正確!謝謝! – cjm2671

回答

1

你的描述與combine_first方法的描述匹配:

組合兩個數據框對象和默認爲非空值幀 調用方法。結果索引列將是 相應的索引和列

參數的工會:其他:數據幀

返回:聯合:據幀

idx = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'x')]) 
df1 = pd.DataFrame([1, 2, 3], index=idx) 

df1 
Out: 
    0 
a x 1 
    y 2 
b x 3 


idx = pd.MultiIndex.from_tuples([('a', 'y'), ('b', 'x'), ('b', 'y')]) 
df2 = pd.DataFrame([4, 5, 6], index=idx) 

df2 
Out: 
    0 
a y 4 
b x 5 
    y 6 

df1.combine_first(df2) 
Out: 
     0 
a x 1.0 
    y 2.0 
b x 3.0 
    y 6.0 
0
print(df_original.merge(df_update,how="outer")) 

,我認爲這會工作