В этом примере есть 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)
Код: Выделить всё
dfAКод: Выделить всё
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