python pandas“groupby”和“如果有”条件

LBe*_*edo 9 python pandas

我有一个类似于下面的数据框,如果对于每个项目,扇区“a”至少被覆盖一次,我想创建一个包含 true/false 的新变量。我正在尝试使用 group.by() 函数,并想使用 .transform() 方法,但由于我的数据是文本,我不知道如何使用它。

      project    sector  
    
        01         a    
        01         b    
        02         b     
        02         b     
        03         a     
        03         a     
    



 project    sector   new_col

    01         a     true
    01         b     true
    02         b     false
    02         b     false
    03         a     true
    03         a     true

       
Run Code Online (Sandbox Code Playgroud)

Phi*_*Leh 4

您可以尝试以下操作:

df['new_col'] = df.groupby('project')['sector'].transform(lambda x: (x == 'a').any() )
Run Code Online (Sandbox Code Playgroud)

这将按项目分组并检查组中是否有“a”