我已经加载了一份包含员工数据,成功创建标签和关系的csv。我可以运行以下内容:
mlist=[[[1,1,1],[0,1,0]],[[0,0,2]],[[1,1,1],[2,2,2],[2,2,1]]]
A = mlist[0]
A1,A2 = A[0],A[1]
B = mlist[1]
C = mlist[2]
C1,C2,C3 = C[0],C[1],C[2]
A = [(x + y)/2 for x,y, in zip(A1,A2)]
C = [np.sum(x)/len(x) for x in zip(C1,C2,C3)]
new_list = [A,B,C]
我收回了经理和员工的集群,但他们已断开连接。如何获得这些关系的可靠链接?
修改的
以下是我用来定义所有内容的设置:
MATCH p=()-[r:is_over]->() RETURN p
M和DN的格式相同。
答案 0 :(得分:2)
您组织数据加载的方式,Manager
始终超过DisplayName
。您没有完整的层次结构,因为DisplayName
永远不会is_over
成为Manager
。
因此,您可以获得一堆单独的断开链。 is_over
关系始终从Manager到DisplayName。
我假设row.display_name
为您提供了与其他Manager
匹配的名称。我会考虑删除DisplayName
和Manager
并将其模型化为Employee
。然后只说(e1:Employee)-[:is_over]-> (e2:Employee)
您遗失的最后一部分是,您需要在数据中确保display_name
的某些值与manager_name
的其他行值相匹配。如果不是这样,那么无论你做什么,数据都不会连接。
我假设这样的数据:
manager_name,display_name
A,B
B,C
您的负载现在的工作方式,您将获得经理A is_over显示名称B,而经理B超过显示名称C,但是"显示名称B"和"经理B"是不同的,没有联系。