#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']]