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