Создайте новый столбец фрейма данных на основе 2 критериев из другого фрейма данных

#python #pandas #dataframe

Вопрос:

У меня есть следующий фрейм данных:

 df=pd.DataFrame({'Name':['JOHN','ALLEN','BOB','NIKI','CHARLIE','CHANG'],  'Age':[35,42,63,29,47,51],  'Salary_in_1000':[100,93,78,120,64,115],  'FT_Team':['STEELERS','SEAHAWKS','FALCONS','FALCONS','PATRIOTS','STEELERS']})  

выход df:

 - Name Age Salary_in_1000 FT_Team 0 JOHN 35 100 STEELERS 1 ALLEN 42 93 SEAHAWKS 2 BOB 63 78 FALCONS 3 NIKI 29 120 FALCONS 4 CHARLIE 47 64 PATRIOTS 5 CHANG 51 115 STEELERS  

И мой фрейм данных, который я пытаюсь завершить:

 df1=pd.DataFrame({'Name':['JOHN','ALLEN','BOB','NIKI','CHARLIE','CHANG'],  'Age':[35,42,63,29,47,51],})  

выход df1:

 - Name Age   0 JOHN 35   1 ALLEN 42   2 BOB 63 78   3 NIKI 29   4 CHARLIE 47   5 CHANG 51  

Я хотел бы добавить новый столбец к df1 этим ссылкам ['FT_Team'] , df основанным на 'Name' и 'Age' в df1 .

Я считаю, что новый код должен выглядеть примерно как .map; однако я совершенно не понимаю, какими будут аргументы для нескольких аргументов.

 df1['FT_Team] =   

конечный результат:

 - Name Age FT_Team  0 JOHN 35 STEELERS  1 ALLEN 42 SEAHAWKS  2 BOB 63 FALCONS  3 NIKI 29 FALCONS  4 CHARLIE 47 PATRIOTS  5 CHANG 51 STEELERS  

В конечном счете, я хотел бы подобрать футбольную команду df по имени И возрасту в df1

Комментарии:

1. df1=df1.merge(df[['Name','Age','FT_Team']], on=['Name','Age'], how='left') ?

2. Это работает! Большое спасибо!

Ответ №1:

Пер Куанг Хоанг:

 df1=df1.merge(df[['Name','Age','FT_Team']], on=['Name','Age'], how='left')