我希望您能够翻译数据框行之间的相似度计算,该数据框包含与某些人有关的一些列信息。其中每一行对应一个人的信息,类似于以下格式:
由于结果是重复的,其中一半就足够了:
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
我正在寻找一种可以自动化完成这项任务的函数,但是我找不到。类似这样的东西存在吗? 感谢阅读,欢迎任何建议或想法。