gpt4 book ai didi

python - 计算pandas中列的余弦相似度

转载 作者:行者123 更新时间:2023-11-30 22:54:10 25 4
gpt4 key购买 nike

我是 pandas 新手,我有这 2 个系列。

train['description_1']train['description_2'] 是系列。它们每行都包含一个向量。

from scipy.spatial.distance import cosine
item3 = pd.concat([train['description_1'], train['description_2']], axis = 1)
cos_vec = item3.apply(cosine)

异常将是TypeError:('cosine()恰好需要2个参数(给定1个)',u'发生在索引description_1')

train['description'] 的每个元素都包含一个向量。

我期待这样的事情

train_1       train_2
[1.0,2.0] [2.0,3.0]
[2.0,2.0] [3.0,2.0]


Output:

cos_sim
x
y

最佳答案

您需要:

import pandas as pd
from scipy.spatial.distance import cosine

df = pd.DataFrame({'description_1':[0.1,0.32,0.3],
'description_2':[0.4,0.5,0.6]})


print (df)
description_1 description_2
0 0.10 0.4
1 0.32 0.5
2 0.30 0.6

cos_vec = (1 - cosine(df["description_1"], df["description_2"]))
print (cos_vec)
0.962571458085

编辑:

import pandas as pd
from scipy.spatial.distance import cosine

df = pd.DataFrame({'description_1':[[1.0,2.0],[2.0,2.0]],
'description_2':[[2.0,3.0],[3.0,2.0]]})


print (df)
description_1 description_2
0 [1.0, 2.0] [2.0, 3.0]
1 [2.0, 2.0] [3.0, 2.0]

cos_vec = df.apply(lambda x: (1 - cosine(x["description_1"], x["description_2"])), axis=1)
print (cos_vec)
0 0.992278
1 0.980581
dtype: float64

关于python - 计算pandas中列的余弦相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37921237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com