6

考虑以下 DataFrame X:

Col A Col B 
1     2
3     4
5     6

和 DataFrame Y:

Col A Col B 
3     7
8     9

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

Col A Col B
1     2
3     7
5     6
8     9

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

4

1 回答 1

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

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

于 2013-06-17T21:35:46.097 回答