按熊猫过滤分组

时间:2021-06-25 06:15:05

标签: python pandas dataframe pandas-groupby

df

我有以下 df,我想检查学生同时学习物理和化学。

我正在尝试使用 groupby 方法并提出以下编码。 我愿意接受任何建议。谢谢

df1.groupby('Name').SubjectName.apply(list).agg(lambda x: (x[0] in ['Physics']) & (x[-1] in ['Chemistry']) )

1 个答案:

答案 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