Изменение порядка столбцов в 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) Name Age Gender Education City
0 Joan 19 Female High School Atlanta
1 Devi 43 Female College Toronto
2 Melissa 27 Female PhD New York City
3 Dave 32 Male High School MadridИзменение порядка столбцов с помощью прямого присваивания
Самый прямой способ изменить порядок столбцов — это использовать прямое присваивание (простите за каламбур!).
Это означает, что вы просто указываете нужный порядок столбцов в виде списка и передаёте его в квадратных скобках при повторном присваивании DataFrame.
В данный момент столбцы нашего DataFrame расположены в следующем порядке: ['Name', 'Age', 'Gender', 'Education', 'City'].
Предположим, что вы хотите поменять местами столбцы Age и Gender. Для этого можно написать следующий код:
Ознакомьтесь с другими уроками Python на сайте datagy, включая наше полное руководство по стилизации Pandas и подробный обзор сводных таблиц (Pivot Tables) в Pandas!
Переупорядочивание столбцов с помощью метода Pandas .reindex()
.reindex()Ещё один способ изменения порядка столбцов — использование метода .reindex() из Pandas. Он позволяет передать желаемый порядок столбцов через параметр columns=.
В следующем примере поменяем местами столбцы Education и City:
Переупорядочивание столбцов Pandas с помощью метода .insert()
.insert()Оба вышеуказанных метода предполагают, что вы вручную указываете список столбцов в нужном порядке. Если вы работаете с большим DataFrame, это может быть утомительным и занимать много времени.
Если вы знаете, на какую позицию нужно вставить столбец, метод .insert() предлагает более удобный способ для этого.
Давайте рассмотрим, как это можно сделать с помощью Python. В следующем примере переместим столбец City между столбцами Name и Gender, чтобы он стал вторым по счёту:
Давайте кратко разберём, что мы сделали:
Мы сохранили столбец
df['City']в переменнуюcityкак объект Series.Удалили этот столбец из DataFrame с помощью метода
.drop().Затем вставили сохранённый столбец обратно в DataFrame на нужную позицию (в данном случае — первую) под тем же названием
'City'.
В результате получаем следующий DataFrame:
Изменение порядка столбцов с использованием пользовательской функции
Если вам часто приходится перемещать различные столбцы в DataFrame, вы можете оформить вышеописанный метод в виде пользовательской функции.
Давайте посмотрим, как это можно реализовать на Python:
Заключение
В этой статье вы узнали, как изменять порядок столбцов в DataFrame Pandas, включая использование методов .reindex() и .insert(). В завершение мы рассмотрели пользовательскую функцию, которая поможет вам быстро переупорядочивать столбцы, если эта задача встречается у вас часто.
Если вы хотите узнать больше о методе .reindex() в Pandas, ознакомьтесь с официальной документацией по этой ссылке.
Дополнительные ресурсы
Чтобы углубить свои знания по смежным темам, ознакомьтесь со следующими материалами:
Добавление пустого столбца в DataFrame Pandas
Последнее обновление