从另一个数据框更新熊猫数据框

时间:2019-11-25 12:24:05

标签: python pandas

我有两个数据框。

df1是

     name     colour    count
0    apple    red       3
1    orange   orange    2
3    kiwi     green     12

df2是

     name    count
0    kiwi   2
1    apple  1

我想根据名称匹配用df2中的计数更新df1。 预期结果:

     name     colour    count
0    apple    red       1
1    orange   orange    2
3    kiwi     green     2

我正在使用它,但是结果不正确。

df3 = df2.combine_first(df1).reindex(df1.index)

如何正确执行此操作?

1 个答案:

答案 0 :(得分:2)

在两个name中由DataFrame创建索引,以使其与DataFrame.set_index匹配,然后由DataFrame.combine_first和最后DataFrame.reset_index匹配来自索引的列:

df = df2.set_index('name').combine_first(df1.set_index('name')).reset_index()
print (df)
     name  colour  count
0   apple     red    1.0
1    kiwi   green    2.0
2  orange  orange    2.0