如何联合更新两个数据帧?

时间:2017-07-13 10:22:38

标签: python pandas

我有两个数据框,df_originaldf_update,都有多索引。

我希望使用密钥匹配的df_original值更新df_update,并将df_update中的所有新数据附加到df_original

我该怎么做?

(我已尝试df.updatedf.merge,但似乎找不到干净的解决方案。)

2 个答案:

答案 0 :(得分:1)

您的说明符合combine_first方法的说明:

  

将两个DataFrame对象组合在一起,默认为框架中的非空值   调用方法。结果索引列将是联合的   各自的索引和列

     

参数:other:DataFrame

     

返回:合并:DataFrame

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

答案 1 :(得分:0)

print(df_original.merge(df_update,how="outer"))

我认为这会起作用