Как я могу отфильтровать df «A», используя в качестве условия сравнение с df «B»?Python

Программы на Python
Anonymous
Как я могу отфильтровать df «A», используя в качестве условия сравнение с df «B»?

Сообщение Anonymous »

У меня есть два фрейма данных: dfA и dfB, с разными формами и разным порядком. dfA содержится в dfB.
В этом примере есть 3 столбца: «Название должности», «Отдел должностей» и «Заработная плата». В dfA отсутствуют значения в столбце «Заработная плата», поэтому я хотел бы получить эти значения из dfB.
Если «Название должности» и «Отдел трудоустройства» совпадает между dfA и dfB, «Зарплата за работу» тоже такая же, поэтому я могу использовать «Зарплату за работу» из dbB для заполнения dfA< /code>.
Например, каждый «Учитель английского языка» в отделе «Учителя» имеет зарплату X, но «Учитель английского языка» из отдела «Частные учителя» имеет другую зарплату, хотя заголовок тот же.
Однако мне пока не удалось найти код для этого.
Мои мысли были такими: , хотя я думаю, что это совершенно неправильно:

Код: Выделить всё

condition_A = (dfA['Job Title'] == dfB['Job Title'])

condition_B = (dfA['Job Department'] == dfB['Job Department'])

dfA.loc[(condition_A) & (condition_B), 'Job Salary'] = dfB.loc[(condition_A) & (condition_B), 'Job Salary']
Эта попытка явно не сработала.

Код: Выделить всё

dataA = {
'Job Title': ['ET', 'FT', 'ET', 'ST', 'ST'],
'Job Department': ['T', 'T', 'PT', 'T', 'PT'],
'Job Salary': [np.nan, 1500, 1000, np.nan, np.nan]
}
dfA = pd.DataFrame(dataA)

dataB = {
'Job Title': ['ST', 'ET', 'RT', 'FT', 'ST', 'PT', 'ET'],
'Job Department': ['T', 'T', 'PT', 'T', 'PT', 'T', 'PT'],
'Job Salary': [2000, 800, 1700, 1500, 2500, 700, 1000]
}
dfB = pd.DataFrame(dataB)
Желаемый результат ( недостающие значения заполнены из dfB):

Код: Выделить всё

dataA = {
'Job Title': ['ET', 'FT', 'ET', 'ST', 'ST'],
'Job Department': ['T', 'T', 'PT', 'T', 'PT'],
'Job Salary': [800, 1500, 1000, 2000, 2500]
}
dfA = pd.DataFrame(dataA)
Заранее спасибо!


Подробнее здесь: https://stackoverflow.com/questions/787 ... on-to-df-b

Вернуться в «Python»