Фильтрация родительских строк фрейма данных Panda на основе дочернего условия

#python #pandas #filter

#python #pandas #Фильтр

Вопрос:

У меня есть фрейм данных и список

 Person_ID Prod
A         1
B         2 
A         3
C         4
D         5
D         1

exclude_people_who_bought = [1]
  

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

 Person_ID Prod
B         2 
C         4
  

Ответ №1:

Попробуйте с isin

 out = df.loc[~df.Person_ID.isin(df.loc[df.Prod==1,'Person_ID'])]
  Person_ID  Prod
1         B     2
3         C     4