1

在过去的几天里,我一直在研究 anytree 和 treelib 库,但我不知道如何实际构建树。我确定我缺少一些相对简单的东西。基本上,我需要建立一个组织结构图。我的数据包含两个列表:

df = {'employee_id': {0: 'XFV67DN9Z',
  1: 'LGUW9GHUL',
  2: 'ZI2ZN7GRB',
  3: '3JUJVPMOX',
  4: 'XSRDWVMRW',
  5: '9QVJI1VYI',
  6: 'K22VHQ6AG',
  7: 'KL5D81665'},
 'manager_id': {0: 0,
  1: 'XFV67DN9Z',
  2: 'XFV67DN9Z',
  3: 'XFV67DN9Z',
  4: 'ZI2ZN7GRB',
  5: 'XFV67DN9Z',
  6: 'XFV67DN9Z',
  7: 'XFV67DN9Z'}}

第一个员工是 CEO,所以他们代表根节点。我需要建立一棵可能有 1000 名员工的树。每个节点还必须包含性别、薪水等属性(也将存储在列中)。如果我可以在构建树时分配这些属性,那将是理想的。树结构的目标是能够分析有关组织层的事物。那么,例如,组织第 3 层的孩子的平均数量是多少?或者,第 9 级的平均工资是多少。我不太确定我将如何进行这些计算,但我只是想建立数据结构,以便我可以进入那部分......

理想情况下,如果有一个库可以用来使这更简单,那就太好了。我查看了anytree,但不知道如何遍历节点创建过程来创建树。Treelib 提出了同样的问题。有什么建议吗?

4

1 回答 1

1

最终使用了 networkx 库,可以在这里找到:

https://networkx.github.io/

具体来说, from_pandas_dataframe 方法使这非常容易:

https://networkx.github.io/documentation/networkx-1.10/reference/generated/networkx.convert_matrix.from_pandas_dataframe.html

于 2020-06-26T16:58:55.320 回答