熊猫相关矩阵到唯一索引/列组合的字典
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熊猫相关矩阵到唯一索引/列组合的字典相关的知识,希望对你有一定的参考价值。
我正在Pandas上使用此数据集,并且目前停留在此步骤:
我有一个看起来像这样的数据框:
id1 id2 id3 id4
id1 1 0.3 0.5 0.2
id2 0.2 1 0.4 0.7
id3 0 0.5 1 0.8
id4 0.6 0.1 0 1
现在,id<num>
是指与每个消息关联的post_id
。在我做了一些工作以找出这些不同消息之间的余弦相似度得分之后,上述余弦相似度矩阵是一个二维数组。
最终目标是在UI上显示并汇总看起来彼此相似的帖子。为此,我将需要id1
和id2
以及id1
和id3
等分数的概述。
但是,我现在有一个1的对角线(因为它们是相同的,所以很有意义),但是我该如何以更好的方式做到这一点,这样我就不必使用double for循环,并最终将其带到一种可以在数据框中像下面这样显示的状态。
我目前正在做的事情给了我这个:
id1, id1, score
id1, id2, score
id1, id3, score
id1, id4, score
id2, id1, score
id2, id2, score
id2, id3, score
id2, id4, score
id3, id4, score
id3, id1, score
id3, id2, score
id3, id3, score
id4, id1, score
id4, id2, score
id4, id3, score
id4, id4, score
我想得到的是这个:
id1, id2, score
id1, id3, score
id1, id4, score
id2, id3, score
id2, id4, score
id3, id4, score
我该如何实现?我应该将2D矩阵整形为数组吗?我觉得我在这里想念什么。
感谢您在此问题上的帮助。
答案
您可以在数据框的上三角部分插入NaN
,stack
删除那些stack
并从NaN
返回的迭代器中构建一个字典:
另一答案
您可以尝试print(a)
[[nan 0.3 0.5 0.2]
[nan nan 0.4 0.7]
[nan nan nan 0.8]
[nan nan nan nan]]
:
另一答案
尝试一下:
以上是关于熊猫相关矩阵到唯一索引/列组合的字典的主要内容,如果未能解决你的问题,请参考以下文章