In [21]: df.values[[np.arange(df.shape[0])]*2] = 0In [22]: dfOut[22]:0 1 2 3 40 0.000000 0.931374 0.604412 0.863842 0.2803391 0.531528 0.000000 0.641094 0.204686 0.9970202 0.137725 0.037867 0.000000 0.983432 0.4580533 0.594542 0.943542 0.826738 0.000000 0.7532404 0.357736 0.689262 0.014773 0.446046 0.000000
请注意,这仅
df在行数与列数相同时起作用。适用于任意形状的另一种方法是使用np.fill_diagonal:
In [36]: np.fill_diagonal(df.values, 0)



