Изменение порядка столбцов в Pandas: использование метода reindex и метода insert

В этой статье вы узнаете о различных способах изменения порядка столбцов в DataFrame Pandas, включая использование метода .reindex() для переупорядочивания столбцов.

Оглавление

Загрузка примера DataFrame

Для начала загрузим пример DataFrame, который вы сможете использовать на протяжении всего урока. Для этого урока нам понадобится только библиотека Pandas:

import pandas as pd

df = pd.DataFrame.from_dict(
    {
        'Name': ['Joan', 'Devi', 'Melissa', 'Dave'],
        'Age':[19, 43, 27, 32],
        'Gender': ['Female', 'Female', 'Female', 'Male'],
        'Education': ['High School', 'College', 'PhD', 'High School'],
        'City': ['Atlanta', 'Toronto', 'New York City', 'Madrid']
    }
)

print(df)

Изменение порядка столбцов с помощью прямого присваивания

Самый прямой способ изменить порядок столбцов — это использовать прямое присваивание (простите за каламбур!).

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

В данный момент столбцы нашего DataFrame расположены в следующем порядке: ['Name', 'Age', 'Gender', 'Education', 'City'].

Предположим, что вы хотите поменять местами столбцы Age и Gender. Для этого можно написать следующий код:

Ознакомьтесь с другими уроками Python на сайте datagy, включая наше полное руководство по стилизации Pandas и подробный обзор сводных таблиц (Pivot Tables) в Pandas!

Переупорядочивание столбцов с помощью метода Pandas .reindex()

Ещё один способ изменения порядка столбцов — использование метода .reindex() из Pandas. Он позволяет передать желаемый порядок столбцов через параметр columns=.

В следующем примере поменяем местами столбцы Education и City:

Переупорядочивание столбцов Pandas с помощью метода .insert()

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

Если вы знаете, на какую позицию нужно вставить столбец, метод .insert() предлагает более удобный способ для этого.

Давайте рассмотрим, как это можно сделать с помощью Python. В следующем примере переместим столбец City между столбцами Name и Gender, чтобы он стал вторым по счёту:

Давайте кратко разберём, что мы сделали:

  1. Мы сохранили столбец df['City'] в переменную city как объект Series.

  2. Удалили этот столбец из DataFrame с помощью метода .drop().

  3. Затем вставили сохранённый столбец обратно в DataFrame на нужную позицию (в данном случае — первую) под тем же названием 'City'.

В результате получаем следующий DataFrame:

Изменение порядка столбцов с использованием пользовательской функции

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

Давайте посмотрим, как это можно реализовать на Python:

Заключение

В этой статье вы узнали, как изменять порядок столбцов в DataFrame Pandas, включая использование методов .reindex() и .insert(). В завершение мы рассмотрели пользовательскую функцию, которая поможет вам быстро переупорядочивать столбцы, если эта задача встречается у вас часто.

Если вы хотите узнать больше о методе .reindex() в Pandas, ознакомьтесь с официальной документацией по этой ссылке.

Дополнительные ресурсы

Чтобы углубить свои знания по смежным темам, ознакомьтесь со следующими материалами:

Последнее обновление