Как сделать строки столбцами в pandas? Легкий способ с примерами 📊

Для преобразования строк в столбцы в библиотеке pandas вы можете использовать метод "pivot". Вот пример кода:

    import pandas as pd

    # Создаем исходный DataFrame
    data = {'город': ['Москва', 'Санкт-Петербург', 'Екатеринбург'],
            'население': [12655050, 5398064, 1493749],
            'область': ['Московская', 'Ленинградская', 'Свердловская']}

    df = pd.DataFrame(data)

    # Преобразуем строки в столбцы с помощью метода "pivot"
    df_pivot = df.pivot(index='город', columns='область', values='население')

    print(df_pivot)

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

Как сделать строки столбцами в pandas

Pandas - это мощная библиотека на языке программирования Python, которая предоставляет функциональность для анализа и манипуляции данных. Одна из самых распространенных задач при работе с данными - это преобразование строк (наборов данных) в столбцы. В этой статье мы рассмотрим несколько способов сделать это с помощью библиотеки pandas.

Метод 1: Использование функции pd.pivot

Функция pd.pivot может быть использована для преобразования строк в столбцы на основе заданных условий. Она принимает следующие параметры:

  • index: колонка или колонки, которые будут использоваться в качестве индекса для образования новых столбцов
  • columns: колонка, значения которой будут использоваться для создания новых столбцов
  • values: колонка, значения которой будут использоваться для заполнения созданных столбцов

Вот пример использования функции pd.pivot:

import pandas as pd

# Создание исходных данных
data = {'Студент': ['Студент 1', 'Студент 2', 'Студент 3'],
        'Предмет': ['Математика', 'Физика', 'Химия'],
        'Оценка': [85, 90, 95]}

df = pd.DataFrame(data)

# Преобразование строк в столбцы
pivot_df = pd.pivot(df, index='Студент', columns='Предмет', values='Оценка')

print(pivot_df)

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

Метод 2: Использование функций pd.melt и pd.pivot

Еще одним способом преобразования строк в столбцы в pandas является комбинация функций pd.melt и pd.pivot. Этот подход особенно полезен, когда исходные данные имеют несколько колонок, которые должны быть объединены в одну колонку.

Вот пример использования функций pd.melt и pd.pivot:

import pandas as pd

# Создание исходных данных
data = {'ID': [1, 2, 3],
        'Имя': ['Студент 1', 'Студент 2', 'Студент 3'],
        'Физика_Оценка': [85, 90, 95],
        'Химия_Оценка': [90, 95, 80]}

df = pd.DataFrame(data)

# Преобразование строк в столбцы
melt_df = pd.melt(df, id_vars=['ID', 'Имя'], value_vars=['Физика_Оценка', 'Химия_Оценка'], var_name='Предмет', value_name='Оценка')
pivot_df = pd.pivot(melt_df, index=['ID', 'Имя'], columns='Предмет', values='Оценка')

print(pivot_df)

В этом примере у нас есть исходные данные, содержащие информацию об оценках студентов по физике и химии. Мы используем функцию pd.melt для объединения колонок с оценками в одну колонку, а затем функцию pd.pivot для преобразования данных из строк в столбцы. Результатом является DataFrame, в котором каждый студент представлен в виде строки, а каждый предмет - в виде столбца с соответствующей оценкой.

Метод 3: Использование функции pd.stack

Функция pd.stack может быть использована для преобразования строк в столбцы, когда данные представлены в виде MultiIndex DataFrame. MultiIndex DataFrame имеет несколько уровней индексации, и функция pd.stack позволяет сделать один из уровней индексации столбцами.

Вот пример использования функции pd.stack:

import pandas as pd

# Создание исходных данных
data = {'Студент': ['Студент 1', 'Студент 2'],
        'Предмет': ['Математика', 'Физика'],
        'Оценка': [[85, 90, 95], [90, 95, 80]]}

df = pd.DataFrame(data)
df = df.set_index(['Студент', 'Предмет'])

# Преобразование строк в столбцы
stack_df = df['Оценка'].apply(pd.Series).stack().reset_index()
stack_df.columns = ['Студент', 'Предмет', 'Попытка', 'Оценка']

print(stack_df)

В этом примере у нас есть исходные данные, содержащие информацию об оценках студентов по различным предметам. Мы используем функцию pd.stack для преобразования MultiIndex DataFrame в обычный DataFrame. В результате получаем DataFrame, в котором каждая оценка представлена в виде строки, а каждая попытка - в виде столбца с соответствующей оценкой.

Заключение

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

Надеюсь, данная статья помогла вам понять, как сделать строки столбцами в pandas!

Видео по теме

Pandas Базовый №4. Операции со столбцами DataFrame

Pandas Базовый №3. Отбор строк и столбцов, Размерность, Импорт CSV

Pandas Базовый №5. Операции со строками

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

Как сделать строки столбцами в pandas? Легкий способ с примерами 📊