Как поменять местами столбцы в pandas
Перейти к содержимому

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

  • автор:

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

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

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

 baseVolume high24hr highestBid BTC_1 1 1 1 BTC_2 2 2 2 

Отслеживать
149k 12 12 золотых знаков 59 59 серебряных знаков 133 133 бронзовых знака
задан 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") 

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

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

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

Детальный ответ

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

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

Способ 1: Использование временной переменной

Один из самых простых способов поменять местами столбцы — использовать временную переменную для хранения значений одного из столбцов.

import pandas as pd # Создаем примерный dataframe data = df = pd.DataFrame(data) # Переменная для временного хранения значений столбца 1 temp = df['Столбец 1'].copy() # Замена значений столбца 1 на значения столбца 2 df['Столбец 1'] = df['Столбец 2'] # Замена значений столбца 2 на временные значения df['Столбец 2'] = temp df

В этом примере мы создаем простой dataframe с двумя столбцами. Затем мы создаем временную переменную temp и копируем значения из Столбца 1 . Затем мы заменяем значения в Столбце 1 значениями из Столбца 2 , а затем заменяем значения в Столбце 2 на временные значения из переменной temp .

Способ 2: Использование метода reindex

Еще один способ поменять местами столбцы — использовать метод reindex с указанием нового порядка столбцов.

import pandas as pd # Создаем примерный dataframe data = df = pd.DataFrame(data) # Поменять местами столбцы 1 и 2 df = df.reindex(columns=['Столбец 2', 'Столбец 1']) df

В этом примере мы снова создаем простой dataframe с двумя столбцами. Затем мы используем метод reindex для изменения порядка столбцов, указав новый порядок как список столбцов [‘Столбец 2’, ‘Столбец 1’] . В результате столбцы поменяются местами.

Способ 3: Использование метода rename

Третий способ поменять местами столбцы — использовать метод rename с указанием нового названия для каждого столбца.

import pandas as pd # Создаем примерный dataframe data = df = pd.DataFrame(data) # Поменять местами столбцы 1 и 2 df = df.rename(columns=) df

В этом примере мы снова создаем простой dataframe с двумя столбцами. Затем мы используем метод rename для изменения названия каждого столбца, указав новое название для каждого столбца в виде словаря <'Столбец 1': 'Столбец 2', 'Столбец 2': 'Столбец 1'>. В результате столбцы поменяются местами.

Способ 4: Использование метода assign

Четвертый способ поменять местами столбцы — использовать метод assign с указанием новых значений для каждого столбца.

import pandas as pd # Создаем примерный dataframe data = df = pd.DataFrame(data) # Поменять местами столбцы 1 и 2 df = df.assign(Столбец_1=df['Столбец 2'], Столбец_2=df['Столбец 1']).drop(['Столбец 1', 'Столбец 2'], axis=1) df

В этом примере мы снова создаем простой dataframe с двумя столбцами. Затем мы используем метод assign для создания новых столбцов с указанными значениями, используя значения старых столбцов. Затем мы удаляем старые столбцы с помощью метода drop и указываем axis=1 , чтобы удалить их по столбцам. В результате столбцы поменяются местами.

Заключение

Поменять местами столбцы в pandas dataframe можно несколькими способами. Вы можете использовать временную переменную, методы reindex , rename и assign для достижения этой цели. Выберите тот способ, который наиболее подходит для вашего конкретного случая. Удачи в работе с pandas!

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

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