Итерация двух фреймов данных одинаковой длины

#python #pandas

#python #панды

Вопрос:

Я хотел бы выполнить итерацию по двум фреймам данных, которые не имеют одинакового размера, чтобы вывести список пользователей с их информацией, которые покидают компанию и которые все еще активны.

 df1=pd.DataFrame({'Name':['PAUL','LAURE','DAVID','MAT'],
'MATRICULE':['AP','MP','ND','AD'],
'ACTIF':['YES','YES','YES','NO']}
  
 df2=pd.DataFrame({'Name':['MIKE','DAVID','MAT']}
  
 while i in df2.index:
    for j in df1.index:
        user_leave=[]
        if df2['Name'][i] == df1['Name'][j] and df1.ACTIF[j]=='Yes':
            user_leave=df1.iloc[i]
        else :
            j=j 1
            i=i 1
print(user_leave)
  

Результат должен быть таким :

 Name     Matricule
David    ND
  

Ответ №1:

Существует лучший вариант, чем итерация по фрейму данных, вы можете отфильтровать свой первый фрейм данных в соответствии со значениями второго фрейма данных и выбрать нужные столбцы.

Смотрите следующий код:

 df1[(df1.Name.isin(df2.Name)) amp; (df1.ACTIF=='YES')][['Name', 'MATRICULE']]