Как сделать замену нескольких столбцов одного DF на значения столбцов другого DF
У меня есть два датафрейма:
df_1:
FullName Портфель Должность Отдел
A ab директор риски
B cd аналитик оптимизация
D cd аналитик оптимизация
C ef уборщик персонал
A dg директор риски
A pr директор риски
df_2:
FullName Должность Отдел
A старший директор финансы
B Nan оптимизация
D Nan оптимизация
Мне нужно, чтобы столбцы из df_1 по соответствующему имени заменились на аналогичные столбцы из df_2, т.е.в результате должен получиться обновленный df_1:
FullName Портфель Должность Отдел
A ab старший директор финансы
B cd Nan оптимизация
D cd Nan оптимизация
C ef уборщик персонал
A dg старший директор финансы
A pr старший директор финансы
Есть идеи, как это можно реализовать?
Была мысль сделать цикл по set(df_2['FullName']) и в нем находить через .loc нужный срез из df_1 и заменять его на нужный срез из df_2, но не сработало.
Ответы (1 шт):
Автор решения: MarianD
→ Ссылка
df_1.merge(df_2, how="right").append(df_1.iloc[len(df_2):])
Объяснение:
Сначала добавим в df_2 отсутствующие столбцы
>>> df_1.merge(df_2, how="right")
FullName Портфель Должность Отдел 0 A NaN старший директор финансы 1 B NaN Nan оптимизация 2 D NaN Nan оптимизация
и затем к полученной таблице добавим оставшиеся строки из df_1.