以类似透视的方式对分层数据进行排序



我有一个分层数据集,需要以某种方式呈现。具有相同层次结构路径的项目需要按顺序显示。进一步的父母应该列在他们的孩子上方.
感谢任何实现相同目标的指导。

谢谢

**示例数据集 **

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(中找到。我不是该工具的专家,所以我对这个问题给出了一个抽象的解决方案。

问题的作者根据到达给定项目的方式要求顺序,例如从父级向向子级。因此,以下工作流程是合适的。

  1. 查找每个项目从顶层到此项目的路径。(例如:列表中的最后一项 z -> p -> q(
  2. 对路径进行排序(从顶层到低级的键(
  3. 将订单应用于数据透视表

最新更新