Python记录链接工具包-映射未知

Python记录链接工具包-映射未知,python,machine-learning,Python,Machine Learning,我正在使用 当数据集1中的某些列不一致地映射到数据集2中的同一列时,如何提供数据集之间的映射。 基本上,映射是未知的,我想指定的是-Dataset1.Column1可以映射到Dataset2.Column1或Dataset2.Column2或Dataset2.Column3 如何为同一个对象指定比较属性 compare_cl = rl.Compare(pairs, dfA, dfB) compare_cl.string(?, ?); 首先,recordlinkage在比较记录时不强制执行任何类

我正在使用 当数据集1中的某些列不一致地映射到数据集2中的同一列时,如何提供数据集之间的映射。 基本上,映射是未知的,我想指定的是-Dataset1.Column1可以映射到Dataset2.Column1或Dataset2.Column2或Dataset2.Column3 如何为同一个对象指定比较属性

compare_cl = rl.Compare(pairs, dfA, dfB)
compare_cl.string(?, ?);

首先,
recordlinkage
在比较记录时不强制执行任何类型的映射,因此您可以比较两个数据帧中的任意两列,而不管之前是否比较过这些列

在您的情况下,您可以执行以下操作:

compare_cl = recordlinkage.Compare(pairs, dfA, dfB)
compare_cl.string('dfA-column-1', 'dfB-column-1')
compare_cl.string('dfA-column-1', 'dfB-column-2')
compare_cl.string('dfA-column-1', 'dfB-column-3')
recordlinkage
只能在单个列之间进行比较。因此,如果要比较的值跨多个列出现,则需要在预处理阶段或分类阶段解决

如果可能,尝试通过数据预处理解决此问题。我不知道您的问题的具体情况,但听起来您的数据的结构可能会使记录链接变得混乱,如果不在工作流程的早期处理。我强烈建议您查阅有关数据清理的入门资料

如果要比较的数据可以放在一列中,请这样做。如果在<代码> DFA/<代码>中的记录对应于<代码> DFB-Culn1-1/代码>,或者对应于<代码> DFB-Culn2-2/代码>,或<代码> DFB-Culn3/Cuth>,但不是全部三,则应考虑是否可以“改写”<代码> DFB < /C>以解决您的问题,例如,将数据转换为然后使用阻塞准则。(即使用
记录链接.BlockIndex
)忽略无意义的比较

如果(出于任何原因)在预处理期间无法解决此问题,则可以在将候选链接分类为匹配/非匹配时应用条件