我有一个有几列的稀疏矩阵,当值等于该行的最大值时,我想按行计数如何做到这一点?假设数据如下:
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
谢谢!
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]]