Функция melt() в pandas: разворот широкого в длинный

df.melt(id_vars, value_vars) «расплавляет» широкую таблицу в длинную: колонки-показатели складываются в две колонки — имя (variable) и значение (value). Это операция, обратная pivot. Длинный формат (tidy data) нужен для группировок, графиков seaborn и корректного хранения данных.

Синтаксис

df.melt(id_vars='region', var_name='quarter', value_name='revenue')

Примеры использования

Пример 1: Кварталы-колонки в строки

df.melt(id_vars='region', var_name='quarter', value_name='revenue')

Результат:

  region quarter  revenue
0 Center      Q1      100
1  North      Q1      200
2 Center      Q2      150

Пример 2: Обратно в широкий через pivot

long.pivot(index='region', columns='quarter', values='revenue')

Результат:

(длинная таблица снова стала матрицей)
Порешать Python-задачи в тренажёре →

Типичная ошибка

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 строит визуализации именно из длинных данных, где каждая строка это одно наблюдение.

Задачи в тренажёре по теме

Вопросы с собеседований по теме

Смежные темы Python

Pandas: основы

Другие функции pandas

groupby · merge · pivot_table · apply · value_counts · drop_duplicates

Открыть Python-тренажёр (556 задач) →