我有以下 df,我想检查学生同时学习物理和化学。
我正在尝试使用 groupby 方法并提出以下编码。 我愿意接受任何建议。谢谢
df1.groupby('Name').SubjectName.apply(list).agg(lambda x: (x[0] in ['Physics']) & (x[-1] in ['Chemistry']) )
答案 0 :(得分:0)
您可以应用 issubset
来检查集合 {'Physics', 'Chemistry'}
是否是聚合列表的子集:
subjects = {'Physics', 'Chemistry'}
df.groupby('Name').SubjectName.agg(list).apply(subjects.issubset)
# Name
# Albert False
# Alice False
# Jack True
# Jill False
# John True
# Name: SubjectId, dtype: bool