Объединение датафреймов по значению столбца

Есть 2 датафрейма:

number weight
374 1.0
556 2.0
448 3.0
345 4.0

и

num weight
444 2.5
556 4.0
345 7.0
219 5.0

Используя:

df1["weight"] = df1["weight"].map( df2.set_index("num")["weight"] ).fillna(df1["weight"])

все остается как было. Вот как должен выглядеть итог:

number weight
374 1.0
556 4.0
448 3.0
345 7.0

К сожалению код ниже тоже не работает:

d1 = {'number': [374,556,448,345], 'weight': [1,2,3,4]}
d2 = {'number': [444,556,345,219], 'weight': [2.5, 4, 7, 5]}
df = pd.DataFrame(d1)
df1 = pd.DataFrame(d2)
df[['number']].merge(df1, how='left').combine_first(df)
print(df)

Ответы (1 шт):

Автор решения: D.Vinogradov

Попробуйте так.

new_df = df[['number']].merge(df1, how='left').combine_first(df)

>>> new_df
     number  weight
0      374     1.0
1      556     4.0
2      293     3.0
3      345     7.0

p.s. перед этим я переименовал столбец num в аналогичный, как в df1, то есть number

→ Ссылка