[英]adding list elements to pandas dataframe at row level
I have a function which returns 3 elements list which I have to enter in pandas dataframe.我有一个函数,它返回 3 个元素列表,我必须在 Pandas 数据框中输入它。 Function takes
names
and recommend 3 similar names in list which I have to map against it.函数采用
names
并推荐列表中的 3 个相似名称,我必须对其进行映射。
names
a
b
c
my desired dataframe would be我想要的数据框是
names recommendations
a d
a e
a f
b x
b y
b z
c p
c q
c r
Function returns following output函数返回以下输出
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']
I am doing following thing in Pandas
, but this does not work.我正在
Pandas
做以下事情,但这不起作用。
df['recommendations'] = df.apply(lambda row : get_recommendations(row['names']), axis=1)
First create new column by using apply
and function
首先使用
apply
和function
创建新列
Then use df.explode
然后使用
df.explode
df["recommendations"] = df["names"].apply(get_recommendations)
df = df.explode("recommendations")
print(df)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.