这是我的资料框
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 评论