python - 以类似枢轴的方式对分层数据进行排序

标签 python pandas

我有一个需要以某种方式呈现的分层数据集。相同层次路径的项目需要按连续顺序呈现。更多的 parent 应该列在他们的 child 之上。
感谢任何指导以实现相同的目标。
谢谢你
** 样本数据集 **

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

最佳答案

正如标题所说的问题是关于层次结构的,解决方案应该在一些网络包中找到,比如 networkxigraph .我不是那个工具的专家,所以我对这个问题给出了一个抽象的解决方案。
问题的作者是根据到达给定项目的方式要求订单,例如从父级向下流到子级。所以下面的工作流程是合适的。

  • 为每个项目找到从顶级到该项目的路径。 (例如:列表中的最后一项 z -> p -> q)
  • 对路径进行排序(从顶层到底层的键)
  • 将订单应用到透视表
  • 关于python - 以类似枢轴的方式对分层数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62022108/

    相关文章:

    python - 大型 django 表上的高效数据迁移

    python - 单击按钮时运行 Python 脚本

    python - 如何将类属性转换为整数

    python - 连接 pandas 数据框的多列,包括几列中的 bool 值

    python - 如何将每个 Pandas Data Frame 行转换为包含列值作为属性的对象?

    python - 从数据框中删除匹配项

    python - BeautifulSoup 找不到网页上存在的类?

    python - 使用 python-xarray 从多维 netcdf 文件中提取单个变量,同时保留属性/元数据

    Python Pandas - 移动行

    python - 使用 pandas 从文本中确定上下文