如何返回 Pandas Dataframe 中该行包含最大值的列标题

Wag*_*ira 3 python data-manipulation dataframe pandas

我正在开发一个具有如下 DataFrame 的 Python 项目:

data = {'AAA':  [3, 8, 2, 1],
        'BBB':  [5, 4, 7, 2],
        'CCC':  [2, 5, 6, 4]}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

这导致:

AAA 血脑屏障 CCC
0 3 5 2
1 8 4 5
2 2 7 6
3 1 2 4

该任务包括生成以下 DataFrame:

AAA 血脑屏障 CCC 角色
0 3 5 2 血脑屏障
1 8 4 5 AAA
2 2 7 6 血脑屏障
3 1 2 4 CCC

其中“角色”列元素是其所在行中具有最高值的列标题。

您能帮我建议一个解决此任务的代码吗?

小智 5

idxmax您可以在轴上使用该方法:

df['Role'] = df.idxmax(axis=1)
Run Code Online (Sandbox Code Playgroud)

输出:

   AAA  BBB  CCC  Role
0    3    5    2  BBB
1    8    4    5  AAA
2    2    7    6  BBB
3    1    2    4  CCC
Run Code Online (Sandbox Code Playgroud)