pandas unstack: как работает и зачем нужно использовать?

Метод pandas unstack() используется для преобразования иерархически индексированных данных в форму таблицы.

Он преобразует столбцы, находящиеся в уровне иерархии, в новые столбцы, что делает данные более удобными для анализа.

Вот пример:


import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Subject': ['Math', 'English', 'Science'],
        'Score': [90, 85, 95]}

df = pd.DataFrame(data)

df.set_index(['Name', 'Subject'], inplace=True)
print(df)

Это создаст следующий иерархически индексированный DataFrame:


                    Score
Name    Subject        
Alice   Math         90
Bob     English      85
Charlie Science      95

Теперь, если мы применим метод unstack(), он распакует уровень иерархии Subject в столбцы:


df_unstacked = df.unstack()
print(df_unstacked)

Результат будет выглядеть так:


         Score
Subject English Math Science
Name                        
Alice       NaN   90     NaN
Bob        85    NaN    NaN
Charlie    NaN   NaN    95

Теперь каждый уровень иерархии Subject стал отдельным столбцом, что упрощает анализ данных.

Детальный ответ

pandas unstack: как это работает?

В этой статье мы рассмотрим функцию unstack в библиотеке pandas, которая позволяет преобразовывать иерархические данные. Прежде всего, давайте разберемся в том, как работает функция unstack.

Что такое иерархическая структура данных?

Иерархическая структура данных представляет собой способ организации данных в многоуровневую форму. Она может быть полезной, когда у нас есть несколько индексов или столбцов, которые мы хотим использовать для анализа данных.

Как работает функция unstack?

Функция unstack в библиотеке pandas используется для преобразования иерархической структуры данных в более плоскую форму. Это означает, что она преобразует многоуровневые индексы в столбцы, делая данные более доступными для анализа.

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

import pandas as pd

# Создаем иерархическую структуру данных в виде DataFrame
data = {
    ('A', 'one'): [1, 2, 3],
    ('A', 'two'): [4, 5, 6],
    ('B', 'one'): [7, 8, 9],
    ('B', 'two'): [10, 11, 12]
}

df = pd.DataFrame(data)
print("Исходные данные:")
print(df)

# Применяем функцию unstack
unstacked_df = df.unstack()
print("\nДанные после применения функции unstack:")
print(unstacked_df)

В этом примере мы создаем иерархическую структуру данных в виде DataFrame с несколькими уровнями индексов и столбцов. Затем мы применяем функцию unstack к DataFrame и выводим результат. Вы увидите, что иерархическая структура данных преобразуется в более плоскую форму, где каждый уровень индексов становится отдельным столбцом.

Когда использовать функцию unstack?

Функция unstack может быть полезна в следующих случаях:

  • Когда у вас есть многоуровневая структура данных, и вам нужно преобразовать ее для более удобного анализа.
  • Когда вы хотите перевести индексы в столбцы, чтобы сделать данные более плоскими.
  • Когда вам нужно объединить несколько уровней индексов и столбцов в один.

Заключение

Функция unstack в библиотеке pandas предоставляет удобный способ преобразования иерархических данных в плоскую форму. Она может быть полезной при анализе сложных данных с многоуровневой структурой. Применение функции unstack позволяет сделать данные более понятными и удобными для работы.

Видео по теме

Flipping Data with Pandas: Stack & Unstack

# 22. Pandas Pivot, stack, unstack in Python - 10 | Tutorial

Pandas - разбор всех основных возможностей на реальном датасете

Похожие статьи:

🔗 Как объединить 2 датафрейма pandas: простое руководство с пошаговыми советами

pandas unstack: как работает и зачем нужно использовать?