我有一个基本数据框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。由于df1中不存在f和g,因此我们将其附加。 这是所需操作后的示例:
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,但是似乎没有任何输出给我所需的输出。可以
答案 0 :(得分:2)
使用combine_first
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