¿Cómo ordenar columnas por nombre en pandas?

Puede usar la siguiente sintaxis para ordenar rápidamente un DataFrame de pandas por nombres de columna:

df = df[['column1', 'column4', 'column3', 'column2']]

Los siguientes ejemplos muestran cómo utilizar esta sintaxis en la práctica. El ejemplo 3 es el mas automático, nos ayudara a ordenar alfabeticamente mediante sorted.

Ejemplo 1: ordenar Pandas DataFrame por nombres de columna

El siguiente código muestra cómo ordenar un DataFrame de pandas por nombres de columna:

import pandas as pd

# Creamos el dataframe
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12],
                   'steals': [2, 3, 3, 2, 5, 3, 2, 1]})

# Mostramos una lista de las columnas del dataframe
list(df)

['points', 'assists', 'rebounds', 'steals']

# Ordenamos las columnas por su nombre segun la preferencia que nosotros tengamos
df = df[['steals', 'assists', 'rebounds', 'points']]

df

	steals	assists	rebounds  points
0	2	5	11	  25
1	3	7	8	  12
2	3	7	10	  15
3	2	9	6	  14
4	5	12	6	  19
5	3	9	5	  23
6	2	9	9	  25
7	1	4	12	  29

Ejemplo 2: ordenar Pandas DataFrame por lista

El siguiente código muestra cómo ordenar un DataFrame de pandas por una lista de nombres:

import pandas as pd

# Creamos dataframe
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12],
                   'steals': [2, 3, 3, 2, 5, 3, 2, 1]})

# Definimos una lista de nombres
name_order = ['steals', 'assists', 'rebounds', 'points']

# Ordenamos mediante la lista que ya hemos definido
df = df[name_order]

df

	steals	assists	rebounds  points
0	2	5	11	  25
1	3	7	8	  12
2	3	7	10	  15
3	2	9	6	  14
4	5	12	6	  19
5	3	9	5	  23
6	2	9	9	  25
7	1	4	12	  29

Ejemplo 3: ordenar el DataFrame de Pandas alfabéticamente (automático)

El siguiente código muestra cómo ordenar un DataFrame de pandas alfabéticamente:

import pandas as pd

# Creamos el dataframe
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12],
                   'steals': [2, 3, 3, 2, 5, 3, 2, 1]})

# Usamos sorted
df = df[sorted(df.columns)]

df

	assists	points	rebounds  steals
0	5	25	11	  2
1	7	12	8	  3
2	7	15	10	  3
3	9	14	6	  2
4	12	19	6	  5
5	9	23	5	  3
6	9	25	9	  2
7	4	29	12	  1

Recursos adicionales

Cómo ordenar un DataFrame de Pandas por fecha
Cómo encontrar valores únicos en una columna de Pandas

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario