保持两个DataFrame索引处于合并状态



我相信这个问题一定已经在某个地方得到了答案,但我找不到适合我的答案。
我有两个熊猫DataFrames

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

最新更新