Функция wide_to_long
Функция wide_to_long применяется к DataFrame
и преобразует таблицу из широкого формата в длинный.
Она полезна, когда данные представлены в виде нескольких
столбцов, соответствующих разным значениям одной переменной.
Основные параметры: df - исходная таблица,
stubnames - корневое имя столбцов,
i - идентификатор строки,
j - имя нового столбца для суффиксов,
sep - разделитель в именах столбцов.
Синтаксис
pd.wide_to_long(df, stubnames, i, j, sep='')
Пример
Давайте преобразуем таблицу с данными за два года:
import pandas as pd
df = pd.DataFrame({
'id': [1, 2],
'value_2020': [10, 20],
'value_2021': [15, 25]
})
res = pd.wide_to_long(df, stubnames='value', i='id', j='year', sep='_')
print(res)
Результат выполнения кода:
value
id year
1 2020 10
1 2021 15
2 2020 20
2 2021 25
Пример
Теперь преобразуем таблицу с несколькими переменными:
import pandas as pd
df = pd.DataFrame({
'id': [1, 2],
'a_2020': [100, 200],
'a_2021': [110, 210],
'b_2020': [50, 60],
'b_2021': [55, 65]
})
res = pd.wide_to_long(df, stubnames=['a', 'b'], i='id', j='year', sep='_')
print(res)
Результат выполнения кода:
a b
id year
1 2020 100 50
1 2021 110 55
2 2020 200 60
2 2021 210 65
Пример
Пример с использованием суффиксов без разделителя:
import pandas as pd
df = pd.DataFrame({
'id': [1, 2],
'value2020': [5, 6],
'value2021': [7, 8]
})
res = pd.wide_to_long(df, stubnames='value', i='id', j='year', sep='')
print(res)
Результат выполнения кода:
value
id year
1 2020 5
1 2021 7
2 2020 6
2 2021 8
Смотрите также
-
функция
melt,
которая преобразует таблицу из широкого в длинный формат -
функция
pivot,
которая выполняет обратное преобразование -
функция
pivot_table,
которая создает сводную таблицу с агрегацией -
функция
crosstab,
которая строит таблицу частот