拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 当两列在一行中具有最大值时查找最后一列名称python

当两列在一行中具有最大值时查找最后一列名称python

白鹭 - 2022-03-08 2123 0 0

这是我的资料框

  x y z

0 1 0 0

1 1 0 1

2 0 0 1

3 0 1 1

4 1 1 0

当我使用 df.idxmax(axis=1)

我得到的输出是

x

x

z

y

x                        

我想要的输出是

x

z

z

z

y

当两行包含最大值时,请帮我找到最大行的列名

uj5u.com热心网友回复:

取垂直对称,然后取 idxmax 怎么样,即,

df.iloc[:, ::-1].idxmax(axis=1)
0    x
1    z
2    z
3    z
4    y

所以这df.iloc[:, ::-1]部分是

   z  y  x
0  0  0  1
1  1  0  1
2  1  0  0
3  1  1  0
4  0  1  1

现在是从 z 到 x



重新索引的另一种方式可能更清楚地放弃意图:

df.reindex(columns=df.columns[::-1]).idxmax(axis=1)
0    x
1    z
2    z
3    z
4    y

如上。

uj5u.com热心网友回复:

为什么不使用映射或应用或转换并呼叫函式来产生每行所需的结果?

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *