Заменить значение MAX на 1 (else = 0) по строкам в Pandas DF - PullRequest
0 голосов
/ 14 июля 2020

У меня есть DF с большим количеством столбцов, как я могу заменить значения на (1 или 0), учитывая, что максимальное значение для каждой строки получает 1, а все остальные 0. Итак, если у меня есть

v1 v2 v3
1  3  2
0  4  .5
.1 .1 .7

И получите:

v1 v2 v3
0  1  0
0  1  0
0  0  1   

Числа являются числами с плавающей запятой, учитывая предыдущие вычисления, НИКАКИЕ повторяющиеся числа в строке невозможны.

Спасибо,

1 Ответ

3 голосов
/ 14 июля 2020

Мы можем сделать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...