python - 计算 2 个数据帧的每个元素之间的 Jaccard 距离
问题描述
我想计算 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 数据集中的一个实体,每一列对应于来自亚马逊数据集。
解决方案
您可以尝试使用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())
推荐阅读
- python - BeagleBone Green Wireless 上 PWM 的大量设置时间
- python - 使用 SpaCy 和 Python 创建基于规则的匹配以检测地址
- go - 从 http.ResponseWritter 中提取数据
- python - 如何使用 Python 获取不匹配的列名
- javascript - 为什么这两个相同的基准在同一个浏览器但在两个不同的平台上会有不同的结果?
- ravendb - 在 RavenDB 4.0+ 中按条件对嵌套数组使用 RQL 过滤文档
- join - 雪花的多项选择需要年龄
- python - 在 tkinter 的“Toplevel”透明窗口中创建具有黑色背景的非透明矩形
- java - 弹簧 | 处理大json | jvm内存不足
- javascript - 出现渲染错误,就像从渲染中没有返回任何内容一样