Если я правильно понимаю ваш вопрос, ваш wi sh «создать новый столбец» для каждого экземпляра совпадающих идентификаторов будет запутан. Предположительно, вам нужен дополнительный столбец под названием «Управление именем», и если emp_id
соответствует mgr_emp_id
, вы хотите, чтобы full_nm
равнялось «Управлять именем». Очевидно, что при наличии неравенства вы не будете знать имя управления.
Чтобы достичь этого, вы можете просто создать новый столбец значений NAN, отфильтровать строки, где emp_id
соответствует mgr_emp_id
, и заменить Значение NAN со значением этой строки full_nm
для этих строк.
df = pd.DataFrame([
[65391, 'Pierric.Beckert@email.com', 'Pierric Beckert', 57834],
[65392, 'Mat.Yokoyama@email.com', 'Mat Yokoyama', 92499],
[65393, 'Kevin.Harvey@email.com', 'Kevin Harvey', 45325],
[11111, 'example.same@email.com', 'Example Same', 11111]],
columns=['emp_id', 'email_ad', 'full_nm', 'mgr_emp_id'])
df['manager_name'] = np.nan
df.loc[df.emp_id.eq(df.mgr_emp_id), 'manager_name'] = df.full_nm
В последней строке мы используем loc
, чтобы найти строки, в которых emp_id
соответствует mgr_emp_id
, и интересующий столбец ("manager_name") и введите значение в этот элемент dataframe, заменив NAN.
Результат:
emp_id email_ad full_nm mgr_emp_id manager_name
0 65391 Pierric.Beckert@email.com Pierric Beckert 57834 NaN
1 65392 Mat.Yokoyama@email.com Mat Yokoyama 92499 NaN
2 65393 Kevin.Harvey@email.com Kevin Harvey 45325 NaN
3 11111 example.same@email.com Example Same 11111 Example Same
Если вы хотите сделать что-то другое, я думаю, вы бы Вам нужны либо отдельные кадры данных, либо другой формат данных.