Транспонирование фреймов данных в Python: подробное руководство

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

Метод 1: pandas.DataFrame.transpose()
Самый простой способ транспонировать DataFrame — использовать метод transpose(), предоставляемый pandas. Он возвращает новый DataFrame с поменянными местами строками и столбцами.

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# Transpose the DataFrame
transposed_df = df.transpose()
print(transposed_df)

Метод 2: pandas.DataFrame.T
Альтернативой использования метода transpose()является использование атрибута T, который означает транспонирование. Он также возвращает новый DataFrame с перепутанными строками и столбцами.

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# Transpose the DataFrame
transposed_df = df.T
print(transposed_df)

Метод 3: pandas.DataFrame.pivot()
Если ваш DataFrame имеет определенную структуру, в которой вы хотите преобразовать определенные столбцы в строки, вы можете использовать метод pivot(). Этот метод позволяет указать индекс, столбцы и значения результирующего транспонированного DataFrame.

import pandas as pd
# Create a sample DataFrame
data = {'Year': [2010, 2010, 2011, 2011],
        'Category': ['A', 'B', 'A', 'B'],
        'Value': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# Transpose the DataFrame using pivot()
transposed_df = df.pivot(index='Year', columns='Category', values='Value')
print(transposed_df)

Метод 4: numpy.transpose()
Если вы предпочитаете использовать библиотеку numpy, вы можете использовать функцию transpose()для транспонирования DataFrame. Сначала преобразуйте DataFrame в массив numpy, используя атрибут values, транспонируйте его, а затем создайте новый DataFrame из транспонированного массива.

import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# Transpose the DataFrame using numpy.transpose()
transposed_array = np.transpose(df.values)
transposed_df = pd.DataFrame(transposed_array, columns=df.index)
print(transposed_df)

В этой статье мы рассмотрели несколько методов транспонирования DataFrames в Python. Мы рассмотрели методы transpose()и T, предоставляемые pandas, метод pivot()для конкретных преобразований и использование numpy transpose()функция. В зависимости от вашего конкретного варианта использования вы можете выбрать наиболее подходящий метод для эффективного переноса вашего DataFrame.

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