Операция обратная pivot (получению сводной формы) в Pandas реализована функцией melt. Для демонстрации ее применения сгенерируем датафрейм:
Melt преобразует матрицу в форму:
индексные_столбцы...имя_столбца...значение_столбца
Вызовем эту функцию на наших данных и посмотрим, что получится (индексные столбцы - 'firm' и 'year', остальные - колонки значений)
Как можно заметить, через переменную var_name можно задать имя столбца с наименованиями колонок.
Полученные данные можно вернуть в широкий формат функцией pivot:
Отмена вращения сохраняет возможность возврата к прежней форме в случае использования любых индексных комбинаций, например, самого индексного столбца:
Если в функцию melt в качестве параметр id_vars передать колонки, которые не характеризуют однозначно другие столбцы, то вернуть широкий формат станет проблемой:
Действительно, теперь возникают неоднозначности, например, для пары Роза, banana есть два value, и не понятно, какое из низ выбрать.