Перемещение столбца DataFrame Pandas на позицию (В начало и в конец)
Last updated
Last updated
Быть способным работать и манипулировать объектами DataFrame в Pandas является необходимым навыком для каждого, кто работает в области анализа данных или науки о данных. Поскольку Pandas становится вездесущим инструментом для аналитиков данных, важно уметь подготавливать DataFrame к презентации. В этом уроке **вы научитесь использовать Pandas для перемещения столбца DataFrame на конкретную позицию, например, в начало или конец
К окончанию этого урока вы научитесь следующему:
Как переместить столбец Pandas DataFrame на передний план
Как переместить столбец 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
В нашем DataFrame представлено четыре столбца, каждый из которых содержит значения соответствующих заголовков. Мы использовали списочное включение словаря, чтобы упростить создание словаря значений.
Рассмотрим, как переместить столбец DataFrame Pandas с помощью методов .pop()
и .insert()
:
pop() method
Извлечение столбца DataFrame Pandas
insert() method
Вставьте столбец Pandas DataFrame в определенную позицию
Метод .pop()
в Pandas принимает в качестве аргумента метку столбца. Этот метод удаляет столбец из DataFrame и возвращает его.
Метод .insert()
в 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
Давайте разберемся, как можно переместить столбец вперед:
Мы используем метод .pop()
для извлечения колонки 2 из DataFrame и присваиваем колонку col2
к Series.
Затем мы используем метод .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 в последнюю позицию 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 на вторую позицию. Поскольку 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