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

hli*_*117 4 python dataframe pandas cosine-similarity

假设我在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
Run Code Online (Sandbox Code Playgroud)

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

Ami*_*ani 10

您还可以使用sklearn.metrics.pairwisecosine_similarity中的 或其他相似性指标。

from sklearn.metrics.pairwise import cosine_similarity

cosine_similarity(df.col1, df.col2)
Out[4]: array([[0.7498213]])
Run Code Online (Sandbox Code Playgroud)

  • 我使用 `df['col1'].values.reshape(1, -1)` 和 `df['col2'].values.reshape(1, -1)` 来使其工作。 (4认同)

xbe*_*llo 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"]))
Run Code Online (Sandbox Code Playgroud)