Python pandas:查找两列的余弦相似度

问题描述 投票:3回答:2

假设我在python pandas.DataFrame中有两列:

          col1 col2
item_1    158  173
item_2     25  191
item_3    180   33
item_4    152  165
item_5     96  108

获取这两列的余弦相似性的最佳方法是什么?

python pandas dataframe cosine-similarity
2个回答
8
投票

这就是你要找的东西吗?

from scipy.spatial.distance import cosine
from pandas import DataFrame


df = DataFrame({"col1": [158, 25, 180, 152, 96],
                "col2": [173, 191, 33, 165, 108]})

print(1 - cosine(df["col1"], df["col2"]))

3
投票

您还可以使用cosine_similaritysklearn.metrics.pairwise的其他相似性指标。

from sklearn.metrics.pairwise import cosine_similarity

cosine_similarity(df.col1, df.col2)
Out[4]: array([[0.7498213]])
© www.soinside.com 2019 - 2024. All rights reserved.