Pandas 使用其他DataFrame更新列值

Pandas 使用其他DataFrame更新列值,pandas,Pandas,考虑以下DataFrame X: Col A Col B 1 2 3 4 5 6 以及数据帧Y: Col A Col B 3 7 8 9 pandas中是否存在将组合两个数据帧的内置函数,使用列a作为键并更新列B中的值(如果存在),否则追加。使得该函数在X和Y上的输出为 Col A Col B 1 2 3 7 5 6 8 9 我已经研究了merge、update和append,但它们似乎没有按照我想要的方式进行操作

考虑以下DataFrame X:

Col A Col B 
1     2
3     4
5     6
以及数据帧Y:

Col A Col B 
3     7
8     9
pandas中是否存在将组合两个数据帧的内置函数,使用列a作为键并更新列B中的值(如果存在),否则追加。使得该函数在X和Y上的输出为

Col A Col B
1     2
3     7
5     6
8     9
我已经研究了merge、update和append,但它们似乎没有按照我想要的方式进行操作,通过索引而不是Col A值更新更新,merge不覆盖,等等。谢谢

一种方法是:


注意:
take\u last
参数表示您正在“从dfY更新”。

注2:有趣的是,在ubutbu(已删除)的回答中,他使用了
combine\u first
(但发现它的速度是此方法的两倍)。
In [11]: df = pd.concat([dfX, dfY])

In [12]: df
Out[12]:
   ColA  ColB
0     1     2
1     3     4
2     5     6
0     3     7
1     8     9

In [13]: df.drop_duplicates(cols=['ColA'], take_last=True)
Out[13]:
   ColA  ColB
0     1     2
2     5     6
0     3     7
1     8     9