Функция melt() в pandas: разворот широкого в длинный
df.melt(id_vars, value_vars) «расплавляет» широкую таблицу в длинную: колонки-показатели складываются в две колонки — имя (variable) и значение (value). Это операция, обратная pivot. Длинный формат (tidy data) нужен для группировок, графиков seaborn и корректного хранения данных.
id_vars — колонки, которые остаются «как есть» (ключи-идентификаторы), value_vars — те, что расплавляются (если не указать, расплавятся все остальные). После melt часто нужно убрать строки с NaN, если исходная матрица была разреженной. melt и pivot — обратные операции: melt складывает колонки в строки, pivot разворачивает обратно.
Где спрашивают на собеседовании
melt спрашивают в задачах «приведи данные к длинному формату» и при подготовке к визуализации (seaborn любит tidy data). Ценят понимание пары melt (wide→long) и pivot (long→wide) и роли id_vars.
FAQ: частые вопросы про melt
Что делает melt в pandas?
Превращает широкий формат в длинный: колонки-показатели складываются в две колонки — variable (имя колонки) и value (значение). id_vars остаются как ключи. Это обратная операция к pivot.
Чем melt отличается от pivot?
melt складывает колонки в строки (wide → long), pivot разворачивает строки в колонки (long → wide). Это взаимно обратные операции.
Зачем нужен длинный формат?
Длинный (tidy) формат удобен для группировок, фильтров и графиков — например, seaborn строит визуализации именно из длинных данных, где каждая строка это одно наблюдение.