Cómo cambiar el orden de las columnas Pandas DataFrame

  1. Listar las columnas en el nuevo orden deseado en Pandas
  2. insert una nueva columna con la ubicación específica en Pandas
  3. columna reindex para un orden determinado en Pandas

Introduciremos cómo cambiar el orden de las columnas del DataFrame, con diferentes métodos como asignar los nombres de las columnas en el orden que queramos, usando insert y reindex.

Listar las columnas en el nuevo orden deseado en Pandas

La forma más simple es reasignar el DataFrame con una lista de las columnas, o simplemente asignando los nombres de las columnas en el orden que queremos:

# python 3.x
import pandas as pd
df = pd.DataFrame({'a':['1','2','3','4'], 
                   'b': [16,7,6,16],
                   'c':[61,57,16,36],
                   'd':['12','22','13','44'],
                   'e':['Green','Red','Blue','Yellow'],
                   'f':[1,11,23,66]})
print(df)
df = df[['e','c','b','f','d','a']]
print('Rearranging ..................')
print('..............................')
print(df)

Producción:

   a   b   c   d       e   f
0  1  16  61  12   Green   1
1  2   7  57  22     Red  11
2  3   6  16  13    Blue  23
3  4  16  36  44  Yellow  66
Rearranging ..................
..............................
        e   c   b   f   d  a
0   Green  61  16   1  12  1
1     Red  57   7  11  22  2
2    Blue  16   6  23  13  3
3  Yellow  36  16  66  44  4

insert una nueva columna con la ubicación específica en Pandas

Si estamos creando una nueva columna podemos insertarla en cualquier lugar que queramos:

# python 3.x
import pandas as pd
df = pd.DataFrame({'a':['1','2','3','4'], 
                   'b': [16,7,6,16],
                   'c':[61,57,16,36],
                   'd':['12','22','13','44'],
                   'e':['Green','Red','Blue','Yellow'],
                   'f':[1,11,23,66]})
print(df)
print('Inserting ..................')
print('..............................')
df.insert(0, 'newColMean', df.mean(1))
print(df)

Producción:

   newColMean  a   b   c   d       e   f
0   26.000000  1  16  61  12   Green   1
1   25.000000  2   7  57  22     Red  11
2   15.000000  3   6  16  13    Blue  23
3   39.333333  4  16  36  44  Yellow  66

columna reindex para un orden determinado en Pandas

reindex es posiblemente la forma más eficiente de reorganizar la columna:

# python 3.x
import pandas as pd
df = pd.DataFrame({'a':['1','2','3','4'], 
                   'b': [16,7,6,16],
                   'c':[61,57,16,36],
                   'd':['12','22','13','44'],
                   'e':['Green','Red','Blue','Yellow'],
                   'f':[1,11,23,66]})
print(df)
print('Rearranging ..................')
print('..............................')
df = df.reindex(columns=['a','f','d','b','c','e'])
print(df)

Producción:

   a   b   c   d       e   f
0  1  16  61  12   Green   1
1  2   7  57  22     Red  11
2  3   6  16  13    Blue  23
3  4  16  36  44  Yellow  66
Rearranging ..................
..............................
   a   f   d   b   c       e
0  1   1  12  16  61   Green
1  2  11  22   7  57     Red
2  3  23  13   6  16    Blue
3  4  66  44  16  36  Yellow

Artículo relacionado - Pandas DataFrame

  • Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
  • Cómo borrar la columna de Pandas DataFrame
  • Cómo convertir la columna del DataFrame a Datetime en Pandas
  • Cómo convertir un float en un entero en Pandas DataFrame
  • Artículo relacionado - Pandas DataFrame Column

  • Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
  • Cómo borrar la columna de Pandas DataFrame
  • Cómo convertir la columna del DataFrame a Datetime en Pandas
  • Cómo convertir un float en un entero en Pandas DataFrame