Как сделать замену нескольких столбцов одного 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.

→ Ссылка