【发布时间】:2015-09-04 23:38:24
【问题描述】:
如何从 pandas 数据帧(余弦相似度矩阵)中找到 index!=column 的第二个最大值或最大值?我可以遍历每一列并执行 index!=column 但我确信有更好的方法...
import pandas as pd
cos = pd.DataFrame([
[ 1. , 0.17404038, 0.36849397],
[ 0.17404038, 1. , 0.20505339],
[ 0.36849397, 0.20505339, 1. ]
])
cos.columns = ['A', 'B', 'C']
cos.index = ['A', 'B', 'C']
cos 是这样的
A B C
A 1.000000 0.174040 0.368494
B 0.174040 1.000000 0.205053
C 0.368494 0.205053 1.000000
排除值为 1 的单元格,我希望结果为
Col1 Col2
0 A C
1 B C
2 C A
我可以这样做并获得第二个最大值而不是最大值吗?
results = cos.idxmax().reset_index()
results.columns = ['Col1', 'Col2']
results
Col1 Col2
0 A A
1 B B
2 C C
【问题讨论】:
-
为什么不直接将
1设置为-1,然后得到max?
标签: pandas max cosine-similarity