在 Pandas DF 中按行将 MAX 值替换为 1(否则 = 0)

EGM*_*686 1 python pandas

我有一个包含很多列的 DF,鉴于每行的最大值为 1 而其他所有值均为 0,如何用(1 或 0)替换这些值。所以如果我有

v1 v2 v3
1  3  2
0  4  .5
.1 .1 .7
Run Code Online (Sandbox Code Playgroud)

并得到:

v1 v2 v3
0  1  0
0  1  0
0  0  1   
Run Code Online (Sandbox Code Playgroud)

根据之前的计算,数字是浮点数,每行不可能有重复的数字。

谢谢,

WeN*_*Ben 5

max那么我们可以做eq

df=df.eq(df.max(axis=1),axis=0).astype(int)
   v1  v2  v3
0   0   1   0
1   0   1   0
2   0   0   1
Run Code Online (Sandbox Code Playgroud)