我想在Pandas数据帧的列上运行一个函数。 语料库是pd.数据帧在
import pandas as pd
import numpy as np
from scipy.spatial.distance import cosine
corpus = pd.DataFrame([[3,1,1,1,1,60],[2,2,0,2,0,20], [0,2,1,1,0,0], [0,0,2,1,0,1],[0,0,0,0,1,0]],index=["stark","groß","schwach","klein", "dick"],columns=["d1", "d2", "d3","d4","d5","d6"])
我有疑问。查询是熊猫系列。在
^{pr2}$现在我想对语料库和查询中的每一列运行余弦函数。在
for column in corpus:
print("Similarity of Documents", column," and query: \n" ,1-cosine(query, corpus[column]))
有没有更好的方法在列上运行余弦函数?可能是某个方法,它获取列并在每个列上运行函数。我想避免for循环。在
您还可以使用
cosine
的定义并自己实现pandas
^{pr2}$numpy
根据@Divakar的建议
np.einsum
您可以使用^{}
'cosine'
功能进行矢量化求解,如下-样本运行-
^{pr2}$运行时测试-
apply
-ing函数是一种简洁、易读且快速的方法:相关问题 更多 >
编程相关推荐