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

Приведённый пример и текст противоречат друг другу. Примеру соответствует текст «поменять местами нулевую и первую строки».
Как в 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")