pandas 为每个人选择最高的组/类别- python

nfs0ujit  于 2023-06-20  发布在  Python
关注(0)|答案(2)|浏览(101)

我有一个数据框,有三列,Name,group 1和group 2。“名称”列显示不同的人员/案例,“组”列也显示这些人员所属的类别。下面是这个数据集的图像:

正如我们从上面的数据集可以看到,同一个人可以被分配到多个组,我需要选择他们所属的最高组。01_高是最高组,03_低是最低组。
例如,让我们以第一种情况“Tom”为例,在组1中,他属于“01_high”,而对于组2,“Tom”属于“03_low”。我需要创建第三个组列'group 3'与更高的类别。在这种情况下,“Tom”的group 3列中的值将是“01_high”。
创建数据集的代码:

data = {'Name': ['Tom', 'Nick','Jack', 'Ann'],
        'group1': ['01_high', '02_medium', '03_low' , '02_medium'],
        'group2':['03_low', '03_low', '02_medium', '03_low']}
  
df = pd.DataFrame(data)
df

最终期望输出:

我对python相当陌生,不知道如何实现所需的输出,因此非常感谢任何帮助。谢谢

fxnxkyjh

fxnxkyjh1#

这里有一个选项:

df["group3"] = df.filter(like="group").apply(sorted, axis=1).str[0]

输出:

print(df)

   Name     group1     group2     group3
0   Tom    01_high     03_low    01_high
1  Nick  02_medium     03_low  02_medium
2  Jack     03_low  02_medium  02_medium
3   Ann  02_medium     03_low  02_medium

相关问题