Python 如何在矩阵中搜索值并给出列名?
我是python和pandas编程新手,我必须编写一个脚本,在给定矩阵时,找到最大值并打印值所在的列名和行名。我已经在这里搜索了一个答案,这里有一个类似的问题,但答案对我来说并不适用:Python 如何在矩阵中搜索值并给出列名?,python,pandas,matrix,Python,Pandas,Matrix,我是python和pandas编程新手,我必须编写一个脚本,在给定矩阵时,找到最大值并打印值所在的列名和行名。我已经在这里搜索了一个答案,这里有一个类似的问题,但答案对我来说并不适用: matrix2 = pd.DataFrame(matrix1, index=row_names, columns=column_names) print(matrix2) print(matrix2.values.max()) print((matrix2 == (matrix2.values.max())).i
matrix2 = pd.DataFrame(matrix1, index=row_names, columns=column_names)
print(matrix2)
print(matrix2.values.max())
print((matrix2 == (matrix2.values.max())).idxmax())
这是我到目前为止得到的结果,我得到的结果是:
ABC123 DEF456 GHI789 JKL012 MNO057 QRS047
ABC123 40 16 -5 1 -4 1
DEF456 16 38 -5 1 -7 1
GHI789 -5 -5 58 -5 -1 -5
JKL012 1 1 -5 60 5 60
MNO057 -4 -7 -1 5 32 5
QRS047 1 1 -5 60 5 60
60
ABC123 ABC123
DEF456 ABC123
GHI789 ABC123
JKL012 JKL012
MNO057 ABC123
QRS047 JKL012
dtype: object
在这种情况下,我希望得到的理想输出是:
JKL012 JKL012
JKL012 QRS047
QRS047 JKL012
QRS047 QRS047
我真的不明白为什么它给了我我的输出。
任何帮助都将不胜感激 您可以使用,以便获得与最大值对应的行和列值,作为创建新数据帧的索引,如图所示:
pd.DataFrame(df[df == df.values.max()].stack().index.values.tolist())