[英]Calculating Jaccard distance between every element of 2 dataframes
我想计算 2 个数据帧之间的 Jaccard 距离。 具体来说,我想使用 CountVectorizer model 分别计算所有 Google 实体(34000 行,7 列)和所有亚马逊实体(34000 行,7 列)之间的成对 Jaccard 距离。 我为每个 dataframe 创建了一个 countVectorizer,如下所示:
cv = CountVectorizer(analyzer='word', ngram_range=(1,1), stop_words='english', binary=True)
cvGoogle = cv.fit_transform(goog_s)
cvAmazon = cv.fit_transform(amaz_s)
创建 CountVectorizer 后,我需要创建一个数据结构,在其中我使用Jaccard Distance
比较两个向量的每个实体,并将其存储在 dataframe 中,其中每一行对应于 Google 数据集中的一个实体,每一列对应一个实体来自亚马逊数据集。
您可以尝试使用sklearn Jaccard distance或scipy Jaccard dissimilarity循环遍历 cols。
如果要比较两个匹配的实体,则
from scipy.spatial.distance import jaccard
my_df = pd.DataFrame()
# Assuming goog_s & amaz_s to be pd.DataFrame objects
for g_col, a_col in zip(goog_s.columns, amaz_s.columns):
my_df.loc[:, '_'.join([g_col, a_col])] = jaccard(goog_s[g_col].tolist(),
amaz_s[a_col].tolist())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.