У меня есть такой фрейм данных:
ID A B C
"Z" "apple" 1 5
"Z" "pear" 3 1
"C" "apple" 1 8
"E" "strawberry" 2 5
"E" "pear" 5 1
"D" "apple" 1 5
"D" "pear" 3 1
"D" "melon" 1 5
Для тех, у кого одинаковый идентификатор, я хочу отфильтровать строки следующим образом: если есть две записи под одним идентификатором, а одна из них - " яблоко ", я хочу удалить строку, содержащую" яблоко ". Если у меня более двух записей, и одна из них - «яблоко», а также если у меня есть более одной записи для этого идентификатора, и ни одна из них не является «яблоком», я хочу удалить все записи, принадлежащие этому идентификатору. Таким образом, df должен выглядеть так:
ID A B C
"Z" "pear" 3 1
"C" "apple" 1 8
Я предполагаю, что отправной точкой должна быть группа по идентификатору, но я не могу понять, как написать функцию, которая сделает все остальное.