Pandas 使用其他DataFrame更新列值
考虑以下DataFrame X: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,但它们似乎没有按照我想要的方式进行操作
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