подсчитывать значения max () в разреженной матрице по строке (датафрейм) - PullRequest
0 голосов
/ 03 марта 2020

У меня есть разреженная матрица с несколькими столбцами, и я хочу считать по строке, если значение равно максимальному значению этой строки. Как это можно сделать? Допустим, данные выглядят так:

index    A    B    C    D    MAX
0        0    0    2    1    2
1        1    4    1    0    4
2        0    3    2    3    3

где результат должен быть:

index    A    B    C    D    MAX
  0      0    0    1    0    2
  1      0    1    0    0    3
  2      0    1    0    1    4

Спасибо!

1 Ответ

0 голосов
/ 03 марта 2020
m=[[0, 0, 2, 1],[1, 4, 1, 0],[0, 3, 2, 3]]
df = pd.DataFrame(m)
maximums = df.max(axis=1)
maxmatrix = [[int(m[i][j] == maximums[i]) for j in range(df.shape[1])] for i in range(df.shape[0])]
print(maxmatrix)

возвращает

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