Перемещение столбца DataFrame Pandas на позицию (В начало и в конец)

Быть способным работать и манипулировать объектами DataFrame в Pandas является необходимым навыком для каждого, кто работает в области анализа данных или науки о данных. Поскольку Pandas становится вездесущим инструментом для аналитиков данных, важно уметь подготавливать DataFrame к презентации. В этом уроке **вы научитесь использовать Pandas для перемещения столбца DataFrame на конкретную позицию, например, в начало или конец

К окончанию этого урока вы научитесь следующему:

  • Как переместить столбец Pandas DataFrame на передний план

  • Как переместить столбец DataFrame Pandas в конец

  • Как переместить столбец DataFrame Pandas в определенную позицию

Оглавление

Загрузка образца DataFrame Pandas

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

# Loading a Sample Pandas DataFrame
import pandas as pd

values = {i: [i] * 3 for i in range(4)}
df = pd.DataFrame(values)
print(df)

# Returns:
#    0  1  2  3
# 0  0  1  2  3
# 1  0  1  2  3
# 2  0  1  2  3

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

Понимание методов pop и Insert в Pandas

Рассмотрим, как переместить столбец DataFrame Pandas с помощью методов .pop() и .insert():

Цель
Перемещение столбца DataFrame Pandas

pop() method

Извлечение столбца DataFrame Pandas

insert() method

Вставьте столбец Pandas DataFrame в определенную позицию

Метод .pop() в Pandas принимает в качестве аргумента метку столбца. Этот метод удаляет столбец из DataFrame и возвращает его.

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

Как переместить столбец DataFrame Pandas на передний план

Как переместить столбец DataFrame Pandas вперед?

Чтобы переместить столбец DataFrame Pandas в начало DataFrame, сначала извлеките столбец с помощью метода .pop(), а затем вставьте его на позицию 0 с помощью метода .insert()

Давайте рассмотрим пример, где мы перемещаем третий столбец в начало DataFrame:

# Move a Pandas Column to the Front
import pandas as pd

values = {i: [i] * 3 for i in range(4)}
df = pd.DataFrame(values)

col2 = df.pop(2)
df.insert(0, '2', col2)

print(df)

# Returns:
#    2  0  1  3
# 0  2  0  1  3
# 1  2  0  1  3
# 2  2  0  1  3

Давайте разберемся, как можно переместить столбец вперед:

  1. Мы используем метод .pop() для извлечения колонки 2 из DataFrame и присваиваем колонку col2 к Series.

  2. Затем мы используем метод .insert() для вставки Series на позицию 0 с меткой '2'

Мы можем упростить этот процесс до одной строки кода, объединив две операции вместе, как показано ниже:

# Simplifying our code above
import pandas as pd

values = {i: [i] * 3 for i in range(4)}
df = pd.DataFrame(values)

df.insert(0, '2', df.pop(2))
print(df)

# Returns:
#    2  0  1  3
# 0  2  0  1  3
# 1  2  0  1  3
# 2  2  0  1  3

В приведенном выше коде мы избегаем необходимости использовать метод .pop() отдельно. Поскольку операция выполняется на месте, мы можем напрямую использовать этот метод при вызове метода.

В следующем разделе вы узнаете, как переместить столбец DataFrame Pandas на последнюю позицию.

Как переместить столбец DataFrame Pandas в конец

Чтобы переместить столбец DataFrame в последнюю позицию DataFrame, мы можем воспользоваться процессом, очень похожим на описанный выше. Мы снова воспользуемся методами .pop() и .insert()

При использовании метода .pop() DataFrame действительно временно теряет один из столбцов. Поэтому нам необходимо быть внимательными к тому, куда мы вставляем столбец. К счастью, мы можем подсчитать количество столбцов и просто вставить его, используя функцию len()

Давайте посмотрим, как мы можем переместить первый столбец в конец DataFrame.

# Move a Column to the End of the DataFrame
import pandas as pd

values = {i: [i] * 3 for i in range(4)}
df = pd.DataFrame(values)

col0 = df.pop(0)
df.insert(len(df.columns), '0', col0)

print(df)

# Returns:
#    1  2  3  0
# 0  1  2  3  0
# 1  1  2  3  0
# 2  1  2  3  0

В приведенном выше коде мы сначала используем метод .pop() для извлечения столбца. Затем мы вставляем его в последнюю позицию. Чтобы сделать этот код динамичным, мы используем функцию len() для подсчета количества столбцов в DataFrame и вставляем его в эту позицию.

Мы можем упростить приведённый выше код еще раз, сводя его к одному вызову метода. Поскольку DataFrame временно теряет одну колонку, нам нужно вычесть 1 из его длины:

df.insert(len(df.columns)-1, '0', df.pop(0))

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

Как переместить столбец DataFrame Pandas в определенную позицию

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

Давайте рассмотрим, как мы можем переместить последнюю колонку DataFrame на вторую позицию. Поскольку Python использует индексацию с нуля, это будет позиция

# Move a Column to a Specific Position
import pandas as pd

values = {i: [i] * 3 for i in range(4)}
df = pd.DataFrame(values)

df.insert(1, '3', df.pop(3))

print(df)

# Returns:
#    0  3  1  2
# 0  0  3  1  2
# 1  0  3  1  2
# 2  0  3  1  2

В приведенном выше коде мы вставляем вытолкнутый последний столбец на вторую позицию. Это можно легко выполнить, объединив в один вызов метода.

Заключение

В этом учебнике вы научились перемещать столбец DataFrame Pandas на определенную позицию, например, в начало или конец. Умение перемещать столбцы улучшает читаемость ваших данных. Это может быть невероятно полезным, когда вы экспортируете данные, например, в файлы Excel или файлы CSV

Вы впервые научились использовать методы .pop() и .insert() для перемещения столбца Pandas в начало. Затем вы узнали, как повторить процесс, чтобы переместить столбец в конец DataFrame. Наконец, вы изучили, как переместить столбец на конкретную позицию.

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

Чтобы узнать больше о схожих темах, ознакомьтесь с приведенными ниже учебными материалами:

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

  • Как добавить/вставить строку в фрейм данных Pandas

  • Вставьте пустой столбец в фрейм данных Pandas

Last updated