Python 在列值上覆盖和附加数据帧

Python 在列值上覆盖和附加数据帧,python,python-3.x,pandas,dataframe,pandasql,Python,Python 3.x,Pandas,Dataframe,Pandasql,我有一个基本数据帧df1: id name count 1 a 10 2 b 20 3 c 30 4 d 40 5 e 50 这里我有一个新的数据帧,更新了df2: id name count 1 a 11 2 b 22 3 f 30 4 g 40 我想在列名上覆盖并附加这两个数据帧。 例如:a和b在df1中存在,但

我有一个基本数据帧df1:

id   name   count
1    a       10
2    b       20
3    c       30
4    d       40
5    e       50
这里我有一个新的数据帧,更新了df2:

id   name   count
1    a       11
2    b       22
3    f       30
4    g       40
我想在列名上覆盖并附加这两个数据帧。 例如:a和b在df1中存在,但在df2中也存在,并且具有更新的计数值。所以我们用a和b的新计数来更新df1。因为f和g在df1中不存在,所以我们附加它们。 以下是所需操作后的示例:

id   name   count
1    a       11
2    b       22
3    c       30
4    d       40
5    e       50
3    f       30
4    g       40

我尝试了df.merge或pd.concat,但似乎没有任何东西能提供我所需要的输出。?任何人都可以先使用
组合

df2=df2.set_index(['id','name'])
df2.combine_first(df1.set_index(['id','name'])).reset_index()
Out[198]: 
   id name  count
0   1    a   11.0
1   2    b   22.0
2   3    c   30.0
3   3    f   30.0
4   4    d   40.0
5   4    g   40.0
6   5    e   50.0

首先使用
combine\u

df2=df2.set_index(['id','name'])
df2.combine_first(df1.set_index(['id','name'])).reset_index()
Out[198]: 
   id name  count
0   1    a   11.0
1   2    b   22.0
2   3    c   30.0
3   3    f   30.0
4   4    d   40.0
5   4    g   40.0
6   5    e   50.0