У меня есть следующий код:
import pandas as pd
w = pd.Series(['BAIN', 'BAIN', 'BAIN', 'KPMG', 'KPMG', 'KPMG', 'EY', 'EY', 'EY' ])
x = pd.Series([101, 102, 103, 104, 105, 106, 107, 108, 109])
y = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9])
z = pd.Series(['', '', '', '', '', '', '', '', ''])
a = pd.Series(['', '', '', '', '', '', '', '', ''])
longdf = pd.DataFrame({'consultant': w, 'invoice_number':x, 'paid_value':y, 'manager':z, 'department':a})
w = pd.Series(['BAIN', 'KPMG', 'EY', 'EY' ])
x = pd.Series([101, 104, 107, 108])
y = pd.Series([13000, 14000, 15000, 16000])
z = pd.Series(['Dawn', 'Brody', 'Tang', 'Vos'])
a = pd.Series(['Data Science', 'Automation', 'Sourcing', 'Sourcing'])
shortdf = pd.DataFrame({'consultant': w, 'invoice_number':x, 'paid_value':y, 'lead_manager_name':z, 'department_num':a})
combo = longdf.merge(shortdf, on = ['consultant', 'invoice_number'], how = 'left')
indexer = ['consultant', 'invoice_number']
shortdf = shortdf.set_index(indexer).rename(columns={'lead_manager_name':'manager', 'department_num':'department'})
longdf = longdf.set_index(indexer)
new = longdf.update(shortdf, join = 'left')
Цель состоит в том, чтобы обновлять только в longdf, где индекс совпадает с индексом shortdf.Я поставил цель ниже. ![enter image description here](https://i.stack.imgur.com/yKHuM.png)