我有两个数据框,df_original
和df_update
,都有多索引。
我希望使用密钥匹配的df_original
值更新df_update
,并将df_update
中的所有新数据附加到df_original
。
我该怎么做?
(我已尝试df.update
和df.merge
,但似乎找不到干净的解决方案。)
答案 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"))
我认为这会起作用