给定一个矩阵:
GIVEN_MATRIX = [[0., 10., 25., 25., 10.],
[1., 0., 10., 15., 2.],
[8., 9., 0., 20., 10.],
[14., 10., 24., 0., 15.],
[10., 8., 25., 27., 0.]]
df = pd.DataFrame(matrix)
如何在循环中选择一列和一行以找到其中的最小值?
是否可以为此使用循环变量?
选项:
di = df.iloc[i].min(axis=1)
不起作用。
您只需要在那些 Pts 中使用 Pandas 中的循环。极少数情况下没有更优的解决方案。
这就像买一辆跑车,总是因为你不知道如何换档而使用一档。
如果问题是如何找到行或列的最小值,不包括对角元素,那么可以这样完成:
具有命名列和行的初始帧(为清楚起见):
注意:如果不排除对角元素,那么对于行和列,对角元素将是最小值。
解决方案:首先用一个无限大的值填充主对角线:
现在您可以使用DataFrame.min()方法来查找列的最小值:
该参数
axis有一个0默认值,因此可以省略:或对于行最小值:
可以不指定轴
如果有一个轴,那么看看会发生什么
因此,轴必须设置为 0 - 聚合将沿该轴工作