Скажите, у меня есть следующий двухмерный кадр данных
+--------+-------------------+------------+
| Index, | Module/Line Item, | Is Module, |
+--------+-------------------+------------+
| 0, | Module 1, | True, |
|--------|-------------------|------------|
| 1, | Line Item 1, | False, |
|--------|-------------------|------------|
| 2, | Line Item 2, | False, |
|--------|-------------------|------------|
| 3, | Module 2, | True, |
|--------|-------------------|------------|
| 4, | Line Item 1, | False, |
|--------|-------------------|------------|
| 5, | Line Item 2, | False |
+--------+-------------------+------------+
И я хочу, чтобы это превратилось в:
+----------+-------------+
| Module | Line Item |
+----------+-------------+
| Module 1 | Line Item 1 |
| |-------------|
| | Line Item 2 |
|----------|-------------|
| Module 2 | Line Item 1 |
| |-------------|
| | Line Item 2 |
+----------+-------------+
Как лучше всего это сделать? Я попробовал pivot_table и groupby, но не смог заставить работать так, как мне хотелось.
Обратите внимание, что в модулях нет заданного количества позиций и шаблонов в именах. Столбец «Является модулем» является единственным индикатором того, является ли значение модулем и его следует поворачивать. Все позиции, которые появляются под модулем до следующего модуля, должны принадлежать этому модулю при повороте.
На это не отвечает Как повернуть фрейм данных , потому что он никогда не объясняет, как разбить столбец на иерархию на основе значений, заданных в другом столбце.