Как сделать максимум каждого столбца 1 и других 0 в кадре данных панд? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть датафрейм со значениями с плавающей точкой.Я хотел бы сделать максимум каждого столбца 1 и всех остальных в столбце 0.

Пример:

1 2 3

4 5 1

7 0 1

становится

0 0 1

0 1 0

1 0 0

Предполагается наличие заголовкови индекс также.

Как использовать здесь метод df.apply ()?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

вы можете попробовать pd.get_dummies(df.idxmax(1))

df.idxmax(1) возвращает pandas.series столбца MAX для каждой строки.

df
Out[204]: 
   A  B  C
1  1  2  3
2  4  5  1
3  7  0  1

df.idxmax(1)
Out[205]: 
1    C
2    B
3    A

, а затем pd.get_dummies() создаст фрейм данныхсогласно серии максимальных значений

pd.get_dummies(df.idxmax(1))
Out[206]: 
   A  B  C
1  0  0  1
2  0  1  0
3  1  0  0
0 голосов
/ 08 июня 2018

Лучший способ использовать df.apply - не использовать df.apply.

(df == df.max()).astype(int)

   0  1  2
0  0  0  1
1  0  1  0
2  1  0  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...