Установить порядок столбцов в кадре данных pandas

Есть ли способ переупорядочить столбцы в dataframe pandas на основе моих личных предпочтений (то есть не в алфавитном порядке или численном сортировке, а скорее в соответствии с некоторыми соглашениями)?

Простой пример:

frame = pd.DataFrame({ 'one thing':[1,2,3,4], 'second thing':[0.1,0.2,1,2], 'other thing':['a','e','i','o']}) 

производит это:

  one thing other thing second thing 0 1 a 0.1 1 2 e 0.2 2 3 i 1.0 3 4 o 2.0 

Но вместо этого я бы хотел:

  one thing second thing other thing 0 1 0.1 a 1 2 0.2 e 2 3 1.0 i 3 4 2.0 o 

(Пожалуйста, предоставьте общее решение, а не конкретное для этого случая. Большое спасибо.)

4 Solutions collect form web for “Установить порядок столбцов в кадре данных pandas”

Просто выберите заказ самостоятельно, введя имена столбцов. Обратите внимание на двойные скобки:

 frame = frame[['column I want first', 'column I want second'...etc.]] 

Вы также можете сделать что-то вроде df = df[['x', 'y', 'a', 'b']]

 import pandas as pd frame = pd.DataFrame({'one thing':[1,2,3,4],'second thing':[0.1,0.2,1,2],'other thing':['a','e','i','o']}) frame = frame[['second thing', 'other thing', 'one thing']] print frame second thing other thing one thing 0 0.1 a 1 1 0.2 e 2 2 1.0 i 3 3 2.0 o 4 

Кроме того, вы можете получить список столбцов с:

 cols = list(df.columns.values) 

Результатом будет следующее:

 ['x', 'y', 'a', 'b'] 

Который тогда легко изменить вручную.

Построить его со списком вместо словаря

 frame = pd.DataFrame([ [1, .1, 'a'], [2, .2, 'e'], [3, 1, 'i'], [4, 4, 'o'] ], columns=['one thing', 'second thing', 'other thing']) frame one thing second thing other thing 0 1 0.1 a 1 2 0.2 e 2 3 1.0 i 3 4 4.0 o 

Вы также можете использовать OrderedDict:

 In [183]: from collections import OrderedDict In [184]: data = OrderedDict() In [185]: data['one thing'] = [1,2,3,4] In [186]: data['second thing'] = [0.1,0.2,1,2] In [187]: data['other thing'] = ['a','e','i','o'] In [188]: frame = pd.DataFrame(data) In [189]: frame Out[189]: one thing second thing other thing 0 1 0.1 a 1 2 0.2 e 2 3 1.0 i 3 4 2.0 o 
  • добавить гиперссылку на лист excel, созданный методом pandas dataframe to_excel
  • От защищенного паролем файла Excel до pandas DataFrame
  • GIL для ограниченного потока IO в расширении C (HDF5)
  • Pandas DataFrame, Как удалить все столбцы и строки, сумма которых равна 0
  • Установка столбцов для пустого кадра данных pandas
  • Python Pandas: как вернуть сгруппированные списки в столбце как dict
  • указав «пропустить NA» при вычислении среднего значения столбца в фрейме данных, создаваемом Pandas
  • Как отсортировать pandas pivot_table на основе новейшей даты на уровне?
  •  
    Interesting Posts for Van-Lav

    Словарь Python: удаление символов u

    Дублирование экземпляров модели и связанных с ними объектов в Django / Algorithm для повторного дублирования объекта

    Python: сетевые вызовы перед началом работы в сети

    Использование формы входа в систему с помощью scrapy

    выбор из мультииндексных панд

    Конструктор Python делает странные вещи с необязательными параметрами

    Неблокирующий джанго?

    Я действительно должен установить Xcode и скомпилировать PyObjC в результате обновления 1.7.6?

    при создании нового продукта я получил ошибку «Нет каталога каталогов яиц» на plone4.3

    Назовите эту конструкцию языка python / ruby ​​(используя значения массива для удовлетворения функциональных параметров)

    netbeans 7.1 и python

    Действительно ли сделать расширение collection.namedtuple?

    проблема с кодировкой python для mssql

    Автоматически создавать документацию Wiki Wiki от Python Docstrings

    Как я могу устранить неполадки Python «Не удалось найти независимые от платформы библиотеки <prefix>"

    Python - лучший язык программирования в мире.