我想计算数据帧行之间的相似性。我有一些关于一些人的专栏。一排就是一个人。看起来是这样的:
print(df)
id name firstname email town age
0 1 martin pierre truc@machin.com Paris na
1 2 dupond sarah bidule@machin.com London 32
2 3 dupond sarah bidule@machin.com Berlin 32
3 4 dupond john na Madrid 45
4 5 smith na something@thing.com Paris 28
如果至少完成了3列,我想为每行计算与其他行相同的值数除以列数。 例如,在索引为1的行和索引为2的行之间,共有4个变量。因此,我的相似度将是4/5(id不计算)=相似度的80%。 我的结果必须是一个相似性矩阵,因为在这之后我想找到相似性高于0.6的行来构建一个新的数据帧。 可能是这样的:
print(similarity)
0 1 2 3 4
0 1 0 0 0 0.2
1 0.2 1 0.8 0.2 0
2 0 0.8 1 0.2 0
3 0 0.2 0.2 1 0
4 0.2 0 0 0 1
因为结果是重复的,所以一半就足够了:
print(similarity)
0 1 2 3 4
0 0 0 0 0.2
1 0.8 0.2 0
2 0.2 0
3 0
4
我正在寻找一个功能,将自动化,但我找不到。这样的事情存在吗? 感谢阅读,欢迎您提出任何建议或想法
可以将^{} 与自定义距离函数一起使用
输出:
相关问题 更多 >
编程相关推荐