Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以类似枢轴的方式对层次结构数据进行排序_Python_Pandas - Fatal编程技术网

Python 以类似枢轴的方式对层次结构数据进行排序

Python 以类似枢轴的方式对层次结构数据进行排序,python,pandas,Python,Pandas,我有一个分层数据集,需要以某种方式呈现。相同层次结构路径的项需要按连续顺序显示。其他家长应列在其子女的上方。 感谢您的指导,以实现同样的目标 多谢各位 **样本数据集** 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='Ch

我有一个分层数据集,需要以某种方式呈现。相同层次结构路径的项需要按连续顺序显示。其他家长应列在其子女的上方。
感谢您的指导,以实现同样的目标

多谢各位

**样本数据集**

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
**期望结果**

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

正如标题所述,问题是关于层次结构的,解决方案应该在一些网络包(如或)中找到。我不是这方面的专家,所以我对这个问题给出了一个抽象的解决方案

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

  • 为每个项目查找从顶层到该项目的路径。(示例:列表中的最后一项z->p->q)
  • 对路径进行排序(键从顶层到底层)
  • 将顺序应用于数据透视表

  • 在您想要的结果中,您可以添加对索引列含义的解释吗。i、 e.为什么
    r
    o
    在同一行,但是
    t
    q
    p
    不在同一行?请通过编辑您的问题发布此更新。正如你所见,在评论中阅读它是非常困难的。所以这只是一个改变行顺序的例子?你不必等待将来,现在就编辑你的问题并解决它。除了@Dan所说的,还请提供一个解释为什么行应该像你所展示的那样排序的理由