Скажите, у меня есть следующий двухмерный кадр данных
+--------+-------------------+------------+
| 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 |
+----------+-------------+
Как лучше всего это сделать? Есть ли встроенный способ поворачиваться через панд? Я возился с каким-то обычным питоном, но он был очень неэффективным, и я не мог заставить его работать правильно.
Обратите внимание, что между модулями не задано количество позиций, а в именах нет шаблонов. Столбец «Является модулем» является единственным индикатором того, является ли значение модулем и его следует поворачивать. Все позиции, которые появляются под модулем до следующего модуля, должны принадлежать этому модулю при повороте.
На это не отвечает Как развернуть фрейм данных , потому что он никогда не объясняет, как разбить столбец на иерархию на основе значений, заданных в другом столбце.