我有一个分层数据集,需要以某种方式呈现。具有相同层次结构路径的项目需要按顺序显示。进一步的父母应该列在他们的孩子上方.
感谢任何实现相同目标的指导。
谢谢
**示例数据集 **
level Parent Child
0 z z
1 z o
1 z p
2 p t
2 p q
2 o r
**我试过的 **
df = pd.read_clipboard(sep='t')
df1=df.pivot(columns='level',values='Child')
df1.fillna('-',inplace=True)
df1
**我的结果 **
level 0 1 2
0 z - -
1 - o -
2 - p -
3 - - t
4 - - q
5 - - r
**期望的结果 **
level 0 1 2
0 z - -
1 - o -
2 - - r
3 - p -
4 - - t
5 - - q
正如标题指出的问题与层次结构有关,解决方案应该在一些网络包(如 networkx 或 igraph(中找到。我不是该工具的专家,所以我对这个问题给出了一个抽象的解决方案。
问题的作者根据到达给定项目的方式要求顺序,例如从父级向向子级。因此,以下工作流程是合适的。
- 查找每个项目从顶层到此项目的路径。(例如:列表中的最后一项 z -> p -> q(
- 对路径进行排序(从顶层到低级的键(
- 将订单应用于数据透视表