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

  • Convertir Pandas en CSV sin índice
  • Cómo convertir el diccionario Python en Pandas DataFrame
  • Artículo relacionado - Pandas DataFrame Column

  • Cómo borrar la columna de Pandas DataFrame
  • Cómo contar la frecuencia con la que un valor se produce en Pandas DataFrame