我有一个返回3个元素列表的函数,我必须在pandas数据框中输入该列表。函数需要names
并在列表中推荐3个相似的名称,我必须对其进行映射。
names
a
b
c
我想要的数据框是
names recommendations
a d
a e
a f
b x
b y
b z
c p
c q
c r
函数返回以下输出
def get_recommendations(names, cosine_sim=cosine_sim):
idx = indices[names]
sim_scores = list(enumerate(cosine_sim[idx]))
sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
sim_scores = sim_scores[1:6]
movie_indices = [i[0] for i in sim_scores]
return list(df['names'].iloc[names_indices])
get_recommendations('a') = ['d', 'e', 'f']
我在执行以下操作Pandas
,但这不起作用。
df['recommendations'] = df.apply(lambda row : get_recommendations(row['names']), axis=1)
首先使用apply
和创建新列function
然后使用 df.explode
df["recommendations"] = df["names"].apply(get_recommendations)
df = df.explode("recommendations")
print(df)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句