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

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

  • автор:

Изменение порядка столбцов в 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 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 

Как поменять столбец и строку так, чтобы строка стала столбцом и наоборот?

С использованием pandas на python необходимо строку и столбец поменять местами. Это связано с тем, что исходный файл Excel в начале имеет доп. разделы.

Есть таблица

0 Александр Александров
1 Имя Фамилия
2 Иван Иванов
3 Петр Петров

Необходимо сделать так:
0 Имя Фамилия
1 Александр Александров
2 Иван Иванов
3 Петр Петров

  • Вопрос задан 02 мар.
  • 305 просмотров

3 комментария

Простой 3 комментария

phaggi

Приведённый пример и текст противоречат друг другу. Примеру соответствует текст «поменять местами нулевую и первую строки».

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

Не могу найти документацию на тему того как сменить столбцы и строки местами, чтобы получилось таблица вида:

 baseVolume high24hr highestBid BTC_1 1 1 1 BTC_2 2 2 2 

Отслеживать
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака
задан 12 дек 2017 в 14:09
Evgeny Timofeev Evgeny Timofeev
132 1 1 золотой знак 1 1 серебряный знак 9 9 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если вы хотите транспонировать DataFrame:

In [12]: new = df.T In [13]: new Out[13]: baseVolume high24hr highestBid id isFrozen last low24hr lowestAsk percentChange quoteVolume BTC_AMP 29.541474 0.000020 0.000018 160.0 0.0 0.000018 0.000015 0.000018 0.083690 1.735747e+06 BTC_ARDR 219.976930 0.000048 0.000048 177.0 0.0 0.000048 0.000033 0.000048 0.316515 5.371617e+06 BTC_BCH 2031.838238 0.096500 0.089407 189.0 0.0 0.089520 0.080007 0.089520 0.078948 2.331001e+04 
In [25]: df.T.query("last > .0001") Out[25]: baseVolume high24hr highestBid id isFrozen last low24hr lowestAsk percentChange quoteVolume BTC_BCH 2031.838238 0.0965 0.089407 189.0 0.0 0.08952 0.080007 0.08952 0.078948 23310.005689 

UPDATE:

TypeError: ‘>’ not supported between instances of ‘str’ and ‘float’ как сконвертировать тип в запросе?

x = df.T x.assign(last=pd.to_numeric(x.last, errors='coerce')).query("last > .0001") 

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

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