привет всем у меня есть фрейм данных
my_employees = [
('apple', 'credit'),
('apple', 'slates'),
('apple', 'intro_credit'),
('apple','end_credit'),
('apple', 'logo'),
('apple', 'SMPTE'),
('apple','visible_logo'),
("mango","credit"), ("mango","intro_credit"), ("mango","end_credit"),("mango","slates"),("mango","SMPTE"),("mango","logo")
]
df1 = pd.DataFrame(my_employees, columns = ['Unique_ID','Annotation'])
print(df1)
в столбце unique_id для всех уникальных уникальных_идентификаторов мне нужно проверить столбец аннотаций для этих уникальных уникальных_идентификаторов, чтобы все эти уникальные уникальные_идентификаторы имели все значения этого
my_annotations = ['credit', 'intro_credit', 'end_credit', 'SMPTE','logo', 'visible_logo','slate'].
может ли кто-нибудь пролить свет на это, пожалуйста.
1) Для каждого уникального идентификатора столбец аннотаций должен иметь все типы аннотаций (кредит, интро_кредит, конец_кредита, SMPTE, логотип, видимый_логотип, планшеты); иначе вернуть Unique_ID
если яблоко является одним уникальным_идентификатором, повторяющимся 7 раз, тогда проверьте, что соответствующий столбец аннотаций должен иметь все значения списка my_annotation, в противном случае мудро вернуть этот уникальный_ид
в приведенном выше df яблоко имеет все значения в списке my_annotation, но манго не имеет всех аннотаций, их всего несколько, поэтому мне нужно отобразить манго unique_id
Вы можете сделать:
# create unique Annotations for each Unique_ID
annotations = df1.groupby('Unique_ID')['Annotation'].apply(set).reset_index()
# create mask based on my_annotations, True if contains all the annotations in my_annotations
mask = annotations['Annotation'].apply(frozenset(my_annotations).issubset)
# filter based on the above mask
res = annotations[~mask].drop('Annotation', 1)
print(res)
Выход
Unique_ID
1 mango
Более простой альтернативой является:
res = df1.groupby('Unique_ID')['Annotation'].apply(frozenset(my_annotations).issubset).reset_index()
output = res[~res['Annotation']].drop('Annotation', 1)
print(output)
Выход
Unique_ID
1 mango
Большое спасибо, мой друг, я новичок в пандах, пытающихся получить результат за последние 4 часа, полученный именно с вашим кодом.
пожалуйста, опубликуйте ожидаемый результат