Перейти к содержимому

Как поменять местами столбцы в pandas

  • автор:

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

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

df[['column2', 'column3', 'column1']] 

В следующих примерах показано, как использовать этот синтаксис со следующими пандами DataFrame:

import pandas as pd #create new DataFrame df = pd.DataFrame() #display DataFrame df points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12 

Пример 1: изменение порядка столбцов по имени

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

#change order of columns by name df[['rebounds', 'assists', 'points']] rebounds assists points 0 11 5 25 1 8 7 12 2 10 7 15 3 6 9 14 4 6 12 19 5 5 9 23 6 9 9 25 7 12 4 29 

Пример 2: изменение порядка путем добавления нового первого столбца

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

#define new column to add steals = [2, 3, 3, 4, 3, 2, 1, 2] #insert new column in first position df.insert (0, 'steals', steals) #display dataFrame df steals points assists rebounds 0 2 25 5 11 1 3 12 7 8 2 3 15 7 10 3 4 14 9 6 4 3 19 12 6 5 2 23 9 5 6 1 25 9 9 7 2 29 4 12 

Пример 3: изменение порядка путем добавления нового последнего столбца

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

#define new column to add steals = [2, 3, 3, 4, 3, 2, 1, 2] #insert new column in last position df.insert ( len(df.columns ), 'steals', steals) #display dataFrame df points assists rebounds steals 0 25 5 11 2 1 12 7 8 3 2 15 7 10 3 3 14 9 6 4 4 19 12 6 3 5 23 9 5 2 6 25 9 9 1 7 29 4 12 2 

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

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

new_dataframe = dataframe.reindex(columns=['a', 'c', 'b'])

Функция reindex() возвращает новый DataFrame с заданным порядком столбцов.

В следующей программе мы возьмем DataFrame со столбцами a, b, c и изменим порядок столбцов на a, c, b.

import pandas as pd #initialize a dataframe df = pd.DataFrame( [[21, 72, 67], [23, 78, 62], [32, 74, 54], [52, 54, 76]], columns=['a', 'b', 'c']) #change order of columns df_new = df.reindex(columns=['a', 'c', 'b']) #print new dataframe print(df_new)
a c b 0 21 67 72 1 23 62 78 2 32 54 74 3 52 76 54

Метод 2: использование индексации

Индексирование DataFrame может использоваться для изменения порядка столбцов в данном DataFrame.

Ниже приведен синтаксис для использования индексации DataFrame.

new_dataframe = dataframe[['a', 'c', 'b']]

В следующей программе мы возьмем DataFrame со столбцами a, b, c и изменим порядок столбцов на a, c, b.

import pandas as pd #initialize a dataframe df = pd.DataFrame( [[21, 72, 67], [23, 78, 62], [32, 74, 54], [52, 54, 76]], columns=['a', 'b', 'c']) #change order of columns df_new = df[['a', 'c', 'b']] #print new dataframe print(df_new)
a c b 0 21 67 72 1 23 62 78 2 32 54 74 3 52 76 54

Метод 3: использование конструктора

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

Ниже приведен синтаксис для создания DataFrame с обновленным порядком столбцов.

new_dataframe = pd.dataframe(raw_data, index=['a', 'c', 'b'])

В следующей программе мы возьмем DataFrame со столбцами a, b, c и изменим порядок столбцов на a, c, b.

import pandas as pd #initialize a dataframe df = pd.DataFrame( [[21, 72, 67], [23, 78, 62], [32, 74, 54], [52, 54, 76]], columns=['a', 'b', 'c']) #change order of columns df_new = pd.DataFrame(df, columns=['a', 'c', 'b']) #print new dataframe print(df_new)
a c b 0 21 67 72 1 23 62 78 2 32 54 74 3 52 76 54

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

Как поменять местами два столбца в Pandas (с примером)

Вы можете использовать следующую пользовательскую функцию, чтобы поменять местами два столбца в кадре данных pandas:

def swap_columns (df, col1, col2): col_list = list(df.columns ) x, y = col_list. index (col1), col_list. index (col2) col_list[y], col_list[x] = col_list[x], col_list[y] df = df[col_list] return df 

Эта функция поменяет местами столбцы col1 и col2 в DataFrame.

В следующем примере показано, как использовать эту функцию на практике.

Пример: поменять местами два столбца в Pandas

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame print(df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 9 5 6 G 20 9 9 7 H 28 4 12 

Мы можем определить функцию swap_columns() , чтобы поменять местами столбцы «точки» и «отскоки»:

#define function to swap columns def swap_columns (df, col1, col2): col_list = list(df.columns ) x, y = col_list. index (col1), col_list. index (col2) col_list[y], col_list[x] = col_list[x], col_list[y] df = df[col_list] return df #swap points and rebounds columns df = swap_columns (df, 'points', 'rebounds'): #view updated DataFrame print(df) team rebounds assists points 0 A 11 5 18 1 B 8 7 22 2 C 10 7 19 3 D 6 9 14 4 E 6 12 14 5 F 5 9 11 6 G 9 9 20 7 H 12 4 28 

Обратите внимание, что столбцы «очки» и «подборы» поменялись местами, в то время как все остальные столбцы остались на прежнем месте.

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

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

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

В работе с библиотекой pandas и ее основным объектом DataFrame часто возникает необходимость изменить порядок столбцов. Например, после создания нового столбца его часто требуется переместить на первое место в DataFrame, не изменяя порядка остальных столбцов.

Пример создания DataFrame

import numpy as np import pandas as pd # Создаем DataFrame из случайных чисел df = pd.DataFrame(np.random.rand(10, 5)) # Добавляем новый столбец df['mean'] = df.mean(1)

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

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

Для изменения порядка столбцов есть несколько способов. Один из них — использовать метод insert у объекта DataFrame.

# Вначале удаляем столбец 'mean' mean = df['mean'] df = df.drop('mean', axis=1) # Затем вставляем его на первое место df.insert(0, 'mean', mean)

В результате столбец mean переместится на первое место, а все остальные столбцы останутся на своих местах.

Таким образом, для изменения порядка столбцов в DataFrame можно использовать метод insert , который позволяет вставить столбец на нужное место. Нужно помнить, что перед этим столбец необходимо удалить из DataFrame методом drop .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *