gpt4 book ai didi

python - pandas idxmax 返回所有具有最大值的列

转载 作者:行者123 更新时间:2023-12-02 18:39:38 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

column_1    column_2
2 3
6 4
5 5
.
.
.

我想为上述数据框的每一行返回该行中具有最大值的列的名称;例如,对于第一行,我想返回“column_2”,对于第三行,它将返回两个列名,因为它们具有相同的值。

我尝试使用Pandas的idxmax函数来实现;但是这个函数只返回第一次出现而忽略其余的可能性;与上面第三行的示例一样,idxmax 仅返回 'column_1' 而不是 ['column_1', 'column_2']。

知道如何解决这个问题。预先感谢您的帮助。

最佳答案

对于每一行,您可以检查条目是否等于该行的最大值;这将形成一个 bool 框架。然后您可以用列名乘积它来选择那些为行提供True的列名:

is_max = df.eq(df.max(axis=1), axis=0)
result = is_max.dot(df.columns + " ")

axis=1 of max 表示取每行的最大值和 eqaxis=0说对齐参数(即 df.max(axis=1))以逐行比较,即广播 so),

得到

>>> is_max

column_1 column_2
0 False True
1 True False
2 True True

>>> result

0 column_2
1 column_1
2 column_1 column_2

关于python - pandas idxmax 返回所有具有最大值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68214659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com