合并两个 DataFrame 索引

Keeping both DataFrame indexes on merge

我确定这个问题一定已经在某个地方得到了回答,但我找不到适合我的情况的答案。
我有 2 pandas 个 DataFrame

a = pd.DataFrame({'A1':[1,2,3], 'A2':[2,4,6]}, index=['a','b','c'])
b = pd.DataFrame({'A1':[3,5,6], 'A2':[3,6,9]}, index=['a','c','d'])

我想合并它们以获得类似

的东西
result = pd.DataFrame({
    'A1' : [3,2,5,6],
    'A2' : [3,4,6,9]
}, index=['a','b','c','d'])

基本上,我想要一个结合了两个索引的新 df。在索引匹配的情况下,每列中的值应更新为第二个 df 中的值(在本例中为 b)。如果没有匹配项,则从起始 df 中获取值(在本例中为 a)。
我尝试使用 merge()、join() 和 concat(),但无法获得此结果。

如果评论正确并且结果中确实有错字,您可以使用 pd.concat 创建一个数据框(b 是第一个,因为 b优先保留其值 a),然后删除重复的索引:

使用您的示例数据:

c = pd.concat([b,a])
c[~c.index.duplicated()].sort_index()

打印:

   A1  A2
a   3   3
b   2   4
c   5   6
d   6   9