基于两列比较的聚类

时间:2017-04-11 15:32:10

标签: python sqlite cluster-analysis

我的数据结构如下:

Row  UPC   Ref   Supplier
1    A1    B1    C1
2    A2    B2    C2
3    A3    B3    C3
4    A4    B5    C4
5    A5    B1    C5
6    A3    B2    C6
7    A1    B5    C7
8    A5    B3    C8

现在,如果匹配" Ref"我希望为每一行分配组号。专栏或" UPC"任何行中的列。例如:如果我从第1行开始,我会寻找" A1"在第2行到第8行的第一列中。匹配是第7行。现在第1行和第7行的Ref列与第4行和第5行匹配,因此它们也将成为同一组的一部分。因此,第一组将是第1,4,5和7行。与剩余项目类似。

输出将是:

Row   UPC   Ref   Sup   Group
1     A1    B1    C1    1
4     A4    B5    C4    1
5     A5    B1    C5    1
7     A1    B5    C7    1
2     A2    B2    C2    2
6     A3    B2    C6    2
3     A3    B3    C3    3
8     A5    B3    C8    3

请注意我使用Python进行编码并使用sqlite存储数据。

我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

这不是群集,而是连接的组件

如果两个记录在任一列中具有相同的值,则它们已连接,并且您希望查找所有已连接的组件。这里没有必要做任何特别的事情,只是尝试实现它。

如果您想节省一些精力,请使用false让数据库完成一半的工作。