本文介绍了“相关矩阵"指的是“相关矩阵".用于字符串.名义数据的相似性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的数据框. df

Here is my data frame. df

  store_1      store_2         store_3         store_4

0 banana      banana           plum            banana
1 orange      tangerine        pear            orange
2 apple       pear             melon           apple
3 pear        raspberry        pineapple       plum
4 plum        tomato           peach           tomato

我正在寻找一种方法来计算商店中同时出现的次数(以比较它们的相似性).

I'm looking for the way to count number of co-occurrences in stores (to compare their similarity).

推荐答案

您可以尝试这样的事情

import itertools as it
corr = lambda a,b: len(set(a).intersection(set(b)))/len(a)
c = [corr(*x) for x in it.combinations_with_replacement(df.T.values.tolist(),2)]

j = 0
x = []
for i in range(4, 0, -1): # replace 4 with df.shape[-1]
    x.append([np.nan]*(4-i) + c[j:j+i])
    j+= i
pd.DataFrame(x, columns=df.columns, index=df.columns)

哪个产量

        store_1 store_2 store_3 store_4
store_1 1.0     0.4     0.4     0.8
store_2 NaN     1.0     0.2     0.4
store_3 NaN     NaN     1.0     0.2
store_4 NaN     NaN     NaN     1.0

这篇关于“相关矩阵"指的是“相关矩阵".用于字符串.名义数据的相似性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-14 23:12