Метод unstack
Метод unstack применяется к DataFrame
и преобразует уровни индекса в столбцы. Первым
параметром можно передать уровень индекса для преобразования.
Если параметр не указан, преобразуется самый внутренний уровень.
Метод часто используется для изменения формы данных из длинного
формата в широкий.
Синтаксис
df.unstack([level])
Пример
Давайте создадим таблицу с двухуровневым индексом и преобразуем внутренний уровень в столбцы:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
index = pd.MultiIndex.from_arrays(arrays, names=['group', 'num'])
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)
print(df.unstack())
Результат выполнения кода:
value
num 1 2
group
A 10 20
B 30 40
Пример
Давайте преобразуем внешний уровень индекса в столбцы,
указав уровень 0:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
index = pd.MultiIndex.from_arrays(arrays, names=['group', 'num'])
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)
print(df.unstack(level=0))
Результат выполнения кода:
value
group A B
num
1 10 30
2 20 40
Пример
Давайте применим unstack к таблице
с пропущенными значениями. В результате
появятся значения NaN:
import pandas as pd
arrays = [['A', 'A', 'B'], [1, 2, 1]]
index = pd.MultiIndex.from_arrays(arrays, names=['group', 'num'])
df = pd.DataFrame({'value': [10, 20, 30]}, index=index)
print(df.unstack())
Результат выполнения кода:
value
num 1 2
group
A 10.0 20.0
B 30.0 NaN
Пример
Давайте преобразуем столбцы обратно в индекс
с помощью метода stack:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
index = pd.MultiIndex.from_arrays(arrays, names=['group', 'num'])
df = pd.DataFrame({'value': [10, 20, 30, 40]}, index=index)
unstacked = df.unstack()
print(unstacked.stack())
Результат выполнения кода:
value
group num
A 1 10
2 20
B 1 30
2 40
Смотрите также
-
метод
stack,
который преобразует столбцы в многоуровневый индекс -
метод
pivot,
который перестраивает таблицу по индексам и столбцам -
метод
pivot_table,
который строит сводную таблицу с агрегацией -
метод
melt,
который превращает столбцы в строки