【问题标题】:Calculating Jaccard distance between every element of 2 dataframes计算 2 个数据帧的每个元素之间的 Jaccard 距离
【发布时间】:2020-02-06 06:02:29
【问题描述】:

我想计算 2 个数据帧之间的 Jaccard 距离。具体来说,我想使用 CountVectorizer 模型分别计算所有 Google 实体(34000 行,7 列)和所有亚马逊实体(34000 行,7 列)之间的成对 Jaccard 距离。我为每个数据帧创建了一个 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 比较两个向量的每个实体,并将其存储在数据框中,其中每一行对应于 Google 数据集中的一个实体和每一列对应于亚马逊数据集中的一个实体。

【问题讨论】:

    标签: python pandas scipy data-science


    【解决方案1】:

    您可以尝试使用sklearn Jaccard distancescipy Jaccard dissimilarity 循环遍历列。

    如果你想比较两个匹配的实体,那么

    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()) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 2017-04-11
      • 2021-12-21
      • 2015-02-12
      • 1970-01-01
      相关资源
      最近更新 更多