Как сделать строки столбцами в pandas? Легкий способ с примерами 📊
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!