Преобразование столбцов в строки в Pandas: изучение различных методов на примерах кода

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

Метод 1: использование функции melt()
Функция melt()в pandas — мощный инструмент для преобразования столбцов в строки. Он принимает DataFrame в качестве входных данных и изменяет его форму на основе указанных переменных-идентификаторов и переменных-значений.

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)
# Use melt() to convert columns to rows
melted_df = pd.melt(df, id_vars=['Name'], value_vars=['Age', 'City'], var_name='Attribute', value_name='Value')
# Print the transformed DataFrame
print(melted_df)

Метод 2: использование функции stack()
Функция stack()в pandas — еще один полезный метод преобразования столбцов в строки. Он работает путем объединения столбцов DataFrame в один столбец, создавая при этом иерархический индекс.

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)
# Use stack() to convert columns to rows
stacked_df = df.set_index('Name').stack().reset_index().rename(columns={'level_1': 'Attribute', 0: 'Value'})
# Print the transformed DataFrame
print(stacked_df)

Метод 3: использование функции melt()с дополнительными операциями
Функция melt()может комбинироваться с другими операциями для достижения более сложных преобразований. Например, вы можете использовать его вместе с функцией groupby(), чтобы изменить форму данных на основе определенных критериев.

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Math': [90, 95, 80],
        'Science': [85, 92, 88]}
df = pd.DataFrame(data)
# Use melt() and groupby() to convert columns to rows
melted_df = pd.melt(df, id_vars=['Name'], var_name='Subject', value_name='Score')
grouped_df = melted_df.groupby(['Name', 'Subject']).sum().reset_index()
# Print the transformed DataFrame
print(grouped_df)

В этой статье мы рассмотрели в pandas несколько методов преобразования столбцов в строки. Функция melt()обеспечивает простой способ изменения формы данных, а функция stack()предлагает иерархическое индексное представление. Кроме того, объединение этих функций с другими операциями позволяет выполнять более сложные преобразования. Используя эти методы, вы можете эффективно манипулировать и анализировать данные в построчном формате, расширяя свои возможности анализа данных.