繁体   English   中英

如何在 python 中建树?

[英]How to build a tree in python?

在过去的几天里,我一直在研究 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 提出了同样的问题。 有什么建议吗?

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

https://networkx.github.io/

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM