繁体   English   中英

计算 2 个数据帧的每个元素之间的 Jaccard 距离

[英]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 distancescipy 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM