将此 Smartsheet 数据放入 DataFrame 中的合乎逻辑的方法是什么?

What would be a logical way to put this Smartsheet data in a DataFrame?

我的目标是使用 Smartsheet API 获取结构如下所示的数据并将其放置在 pandas.DataFrame 对象中。问题是数据有多个层,创建了不一致的层次结构。

             Task              | Finish Date | Complete?
---------------------------------------------------------
- Big Task #1                  |  09/05/19   |  N
   Subtask #1                  |  09/04/19   |  Y
 - Subtask #2                  |  09/04/19   |  N
    - Even Smaller Task #1     |  09/02/19   |  N
        An Even Smaller Task   |  09/02/19   |  Y
      Even Smaller Task #2     |             |  Y
   Subtask #3                  |  09/01/19   |  N
- Big Task #1                  |  09/12/19   |  Y
   Subtask #1                  |             |  Y

我知道 pandas' MultiIndex class,但最大的困难是弄清楚如何将数据组织成可接受的参数输入。

Smartsheet API 在单元格对象中有一个有用的 "parentid" 值,告诉我 "Subtask #2" 是 "Even Smaller Task #1" 的父级。但是,它仅提供直接父单元格。我知道如何找到特定单元格的 "root task",但将结果组织成表格 DataFrame 是我最大的挑战。

不过,这是一个有趣的挑战!有没有人遇到过类似的问题或者有什么想法?

您可以考虑通过 sheet 的层次结构来了解有多少级别,然后为这些级别创建额外的列。然后在任务数据的相应栏中填写数据。它可能与此类似:

Parent | Child | Grand-Child |
------------------------------
Task   | Sub-task | Next sub-task |

或者您可以将所有 Task 值列在一列中,然后添加另一列以提供数据集中的行号,如果它们有父项,则与它们相关。