РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
110 of 687 menu

Метод melt

Метод melt применяется к DataFrame и выполняет обратное преобразование по отношению к pivot. Он "расплавляет" данные, превращая несколько столбцов-переменных в строки с указанием имени переменной и её значения. Основные параметры: id_vars - столбцы-идентификаторы, которые остаются на месте, value_vars - столбцы, которые будут "расплавлены". Параметры var_name и value_name позволяют задать имена новых столбцов.

Синтаксис

df.melt(id_vars=None, value_vars=None, var_name=None, value_name='value')

Пример

Преобразуем таблицу с данными по годам в длинный формат:

import pandas as pd df = pd.DataFrame({ 'id': [1, 2, 3], 'year_2020': [100, 200, 300], 'year_2021': [150, 250, 350] }) res = df.melt(id_vars=['id'], value_vars=['year_2020', 'year_2021']) print(res)

Результат выполнения кода:

id variable value 0 1 year_2020 100 1 2 year_2020 200 2 3 year_2020 300 3 1 year_2021 150 4 2 year_2021 250 5 3 year_2021 350

Пример

Изменим имена результирующих столбцов с помощью var_name и value_name:

import pandas as pd df = pd.DataFrame({ 'id': [1, 2, 3], 'year_2020': [100, 200, 300], 'year_2021': [150, 250, 350] }) res = df.melt( id_vars=['id'], value_vars=['year_2020', 'year_2021'], var_name='year', value_name='sales' ) print(res)

Результат выполнения кода:

id year sales 0 1 year_2020 100 1 2 year_2020 200 2 3 year_2020 300 3 1 year_2021 150 4 2 year_2021 250 5 3 year_2021 350

Пример

Если не указать id_vars и value_vars, метод "расплавит" все столбцы:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2], 'b': [10, 20], 'c': [100, 200] }) res = df.melt() print(res)

Результат выполнения кода:

variable value 0 a 1 1 a 2 2 b 10 3 b 20 4 c 100 5 c 200

Смотрите также

  • метод pivot,
    который выполняет обратное преобразование из длинного формата в широкий
  • метод pivot_table,
    который создает сводную таблицу с агрегацией
  • метод stack,
    который "сжимает" столбцы в строки индекса
  • метод unstack,
    который "разворачивает" строки индекса в столбцы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить