Python 按行(dataframe)计算稀疏矩阵中的max()值

Python 按行(dataframe)计算稀疏矩阵中的max()值,python,dataframe,Python,Dataframe,我有一个稀疏矩阵,有几列,当一个值等于该行的最大值时,我想按行计数 如何做到这一点? 假设数据如下所示: 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

我有一个稀疏矩阵,有几列,当一个值等于该行的最大值时,我想按行计数 如何做到这一点? 假设数据如下所示:

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]]