У меня есть следующий фрейм данных
df = pd.DataFrame({'ItemType': ['Red', 'White', 'Red', 'Blue', 'White', 'White', 'White', 'Green'],
'ItemPrice': [10, 11, 12, 13, 14, 15, 16, 17],
'ItemID': ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D']})
Я хотел бы получить записи (строки) с ItemID, которые содержат только «белый» ItemType в виде DataFrame
Я попытался следующее решение:
types = ['Red','Blue','Green']
~df.groupby('ItemID')['ItemType'].any().apply(lambda u: u in(types))
Но это дает мне неверный результат (D должен быть False) и в форме серии.
A False
B False
C True
D True
Спасибо!