根据值的出现过滤组

Filter groups based on occurrence of a value

给定以下 DataFrame,如果值在组中,我如何过滤组?

例如,在此table中,我想在部门

中保留包含"FB"的组
Job Dept
123 TC
123 TC
123 TC
123 FB
123 FB
123 MD
456 FB
456 FB
456 FB
456 FB

我希望输出到 table 或像这样的数据框。

Job Dept
123 TC
123 TC
123 TC
123 FB
123 FB
123 MD

我知道我可以使用

检查列中是否有"TC"

df['Dept'].isin(["TC"].any()

我不知道如何使用 apply 或其他任何方法来按组和 return 仅包含这些组的数据框来解决这个问题。

您可以索引:

df[df['dept'] == 'FB']

http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing

我刚刚找到答案。我正在查看申请,但我需要使用过滤器

df.groupby("Job").filter(lambda x : x["Dept"].isin(["TC"]).any())