我有一个类似于下面的数据框,如果对于每个项目,扇区“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)
您可以尝试以下操作:
df['new_col'] = df.groupby('project')['sector'].transform(lambda x: (x == 'a').any() )
Run Code Online (Sandbox Code Playgroud)
这将按项目分组并检查组中是否有“a”