我有两个数据框。
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)
如何正确执行此操作?
答案 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