Я хочу использовать условные операторы для создания флага на основе идентификатора и порядка приоритета -
Кадр данных -
df=pd.DataFrame({'id':[1,1,1,1,2,3,3,3],
'var':['Apple','Banana','Orange','Mango', 'Mango', 'Banana','Orange','Mango'],
'flag':[1,1,1,1,1,1,1,1]})
Порядок приоритета - Apple> Banana> Orange
Условия -
1 - если в идентификаторе присутствуют Apple, Banana & Man go, тогда флаг Banana & Ornage становится равным 0, для Man go никакого влияния не будет, будет 1.
2 - Если присутствуют банан и апельсин, тогда флаг для оранжевого станет 0
Вывод -
df=pd.DataFrame({'id':[1,1,1,1,2,3,3,3],
'var':['Apple','Banana','Orange','Mango', 'Mango', 'Banana','Orange','Mango'],
'flag':[1,0,0,1,1,1,0,1]})
Метод -
Я попытался сгруппировать данные и думал о выполнении пересечения путем определения условных списков.
Я считаю, что усложнил это и поступил неправильно. Пожалуйста, руководство.
group_test = df.groupby(['id'],as_index=False).var.agg(lambda x: x.unique().tolist())
list_1 = ['Apple','Banana','Orange']
list_2 = ['Banana', 'Orange']