Транспонирование Dataframe в Pandas
Last updated
Last updated
В этой статье вы узнаете, как транспонировать dataframe Pandas с помощью атрибута .T
и метода .transpose()
. Кроме того, вы научитесь создавать копию dataframe (а не представление).
Оглавление
Для этого урока мы будем использовать два разных набора данных. Это связано с тем, что метод .transpose()
работает по-разному в зависимости от того, содержит ли ваш dataframe разнородные типы данных или нет.
Давайте начнем с загрузки примеров dataframe:
В линейной алгебре, а значит, и в машинном обучении, транспонирование матрицы означает обмен строк и столбцов местами. Эта операция часто используется при вычислении дисперсии и ковариации в регрессионном анализе.
Транспонированная матрица, например df
, обычно обозначается как df^T
.
Путем обмена строк и столбцов матрицы изменяется её форма, если только количество строк и столбцов не совпадает — в этом случае размер матрицы остаётся прежним.
Например, предположим, у вас есть матрица из 3 строк и 2 столбцов. Транспонированная матрица будет иметь 2 строки и 3 столбца.
Узнать больше о транспонировании можно в этой статье на Википедии.
Pandas предоставляет два простых способа транспонировать dataframe. Это можно сделать, добавив .T
к имени dataframe, или с помощью метода .transpose()
, который позволяет задать дополнительные параметры для более гибкого управления.
Давайте транспонируем dataframe df2
и немного исследуем его транспонированную версию, прежде чем перейти к более сложному примеру.
Используем метод .T
для транспонирования нашего dataframe:
Теперь важно отметить, что все наши значения имеют одинаковый тип данных (конкретно — целые числа). Давайте также изучим типы данных исходного dataframe и его транспонированной версии:
Ознакомьтесь с другими уроками Python на сайте datagy, включая наше полное руководство по стилизации Pandas и подробный обзор сводных таблиц (Pivot Tables) в Pandas!
Мы можем видеть, что в исходном dataframe и в его транспонированной версии все типы данных представляют собой int64
.
Теперь давайте рассмотрим, что происходит при наличии смешанных типов данных, как в случае с df_1
.
Если теперь посмотреть на типы данных этих двух фреймов данных, то можно увидеть, что возвращаются следующие элементы:
Мы можем видеть, что любой новый столбец, содержащий данные разнородных типов, автоматически получает тип данных object
. Имейте это в виду, если вы планируете выполнять какие-либо вычисления над такими столбцами.
По умолчанию, Pandas создаст копию dataframe, если обнаружит смешанные типы данных. Это поведение реализуется неявно, и Pandas автоматически обрабатывает такие случаи.
Однако, если все данные в вашем dataframe имеют один и тот же тип, как в примере df2
, вы можете явно указать Pandas создать копию, установив параметр copy=True
.
В этой статье вы узнали, как транспонировать DataFrame в Pandas. Вы научились использовать как атрибут .T
, так и метод .transpose()
. Также вы познакомились с тем, что такое транспонирование и как различные типы данных могут влиять на результат.
Чтобы узнать больше о функции транспонирования в Pandas, ознакомьтесь с официальной документацией по .