Pandas DataFrame使用其他DataFrame更新列值

The*_*CAL 6 pandas

考虑以下DataFrame X:

Col A Col B 
1     2
3     4
5     6
Run Code Online (Sandbox Code Playgroud)

和DataFrame Y:

Col A Col B 
3     7
8     9
Run Code Online (Sandbox Code Playgroud)

在pandas中是否存在内置函数,它将组合两个数据帧,使用Col A作为键并更新Col B中的值(如果存在),否则追加.这样在X和Y上输出这个函数就是

Col A Col B
1     2
3     7
5     6
8     9
Run Code Online (Sandbox Code Playgroud)

我已经研究了合并和更新并附加但它们似乎没有按照我想要的方式运行,通过索引而不是Col A值更新更新,合并不会覆盖,等等.谢谢!

And*_*den 3

一种方法是删除concat重复项:

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
Run Code Online (Sandbox Code Playgroud)

注意:该take_last参数意味着您正在“从 dfY 更新”。