Python

¿Cómo cambiar el nombre de las columnas en Pandas?

En los DataFrame de Pandas los nombres de las columnas permiten identificar rápidamente el contenido de estas. Por eso saber como cambiar el nombre de las columnas en Pandas puede ser importante ya que en muchas ocasiones puede que se incluyan en el archivo de datos. O simplemente sean nombres crípticos que se desea cambiar. Además de las columnas también se puede asignar un nombre a las filas de un DataFrame. A continuación, se va a explicar cómo modificar tanto los nombres de las columnas como las filas en los DataFrame de Pandas.

A modo de ejemplo en esta entrada se utilizará el conjunto de datos de exoplanetas que se puede encontrar en la librería Seaborn. Para importarlo se ha de importar la librería y utilizas la función load_dataset() como se muestra en el siguiente ejemplo

import seaborn as sb

planets = sb.load_dataset('planets')
planets.head()
            method  number  orbital_period   mass  distance  year
0  Radial Velocity       1         269.300   7.10     77.40  2006
1  Radial Velocity       1         874.774   2.21     56.95  2008
2  Radial Velocity       1         763.000   2.60     19.84  2011
3  Radial Velocity       1         326.030  19.40    110.62  2007
4  Radial Velocity       1         516.220  10.50    119.47  2009

Cambiar el nombre de todas las columnas

Los nombres de las columnas de un DataFrame se pueden obtener mediante la propiedad columns. Así, para nuestro conjunto de ejemplo se puede ver que estas son

planets.columns
Index(['method', 'number', 'orbital_period', 'mass', 'distance', 'year'], dtype='object')

Ahora, si se desea traducir los nombres de las columnas, simplemente es necesario asignar un nuevo vector con los nombres.

planets.columns = ['método', 'número', 'periodo_orbital', 'masa', 'distancia', 'año']
planets.columns
Index(['método', 'número', 'periodo_orbital', 'masa', 'distancia', 'año'], dtype='object')

Cambiar solamente ciertas columnas

El método anterior permite cambiar el nombre de todas las columnas, pero esto no es lo que se busca en muchas ocasiones. Para cambiar solamente el nombre de unas columnas los DataFrame existe el método rename(). Este método requiere que se le asigne un diccionario con el nombre original como clave y el nuevo nombre como valor. Ahora se puede cambiar los nombres por otros más largos.

planets2 = planets.rename(columns={'periodo_orbital':'periodo orbital',
                                   'método':'método descubrimiento'})

planets2.columns
Index(['método descubrimiento', 'número', 'periodo orbital', 'masa',
       'distancia', 'año'],
      dtype='object')

Al ejecutar el método se obtienen un nuevo DataFrame con los cambios, mientras que el original no se ve afectado. Para reducir el consumo de memoria se puede indicar que el cambio se realice en el objeto original asignando el valor verdadero a la propiedad inplace.

planets.rename(columns={'periodo_orbital':'periodo orbital',
                        'método':'método descubrimiento'},
               inplace=True)
planets.columns
Index(['método descubrimiento', 'número', 'periodo orbital', 'masa',
       'distancia', 'año'],
      dtype='object')

Cambiar el nombre de las filas

Por defecto el nombre de las filas es el índice de estas, pero esto no tiene porqué ser así. A las filas también se puede asignar un nombre. El método para hacer esto es también rename() solo que en este caso el diccionario con los cambios se ha de asignar a la propiedad index. Así para asignar un nombre a los dos primeros planteas se puede utilizar.

planets.rename(index={0:'Planet 1',1:'Planet 2'}, inplace=True)
planets.head()
                   method  number  orbital_period   mass  distance  year
Planet 1  Radial Velocity       1         269.300   7.10     77.40  2006
Planet 2  Radial Velocity       1         874.774   2.21     56.95  2008
2         Radial Velocity       1         763.000   2.60     19.84  2011
3         Radial Velocity       1         326.030  19.40    110.62  2007
4         Radial Velocity       1         516.220  10.50    119.47  2009

Cambiar al mismo tiempo columnas y filas

El cambio de los nombres de columnas y filas en los DataFrame se puede realizar al mismo tiempo. El método rename() puede leer un diccionario para las columnas y otro para las filas al mismo tiempo. El diccionario con los nombres de columnas se tiene que asignar a la propiedad columns, mientras que los índices a la propiedad index.

planets.rename(columns={'periodo_orbital':'periodo orbital',
                        'método':'método descubrimiento'},
               index={0:'cero',1:'uno'},
               inplace=True)

Conclusiones

En esta entrada se ha visto cómo modificar el nombre de las filas o columnas en DataFrame de Pandas. Saber cómo cambiar el nombre de las columnas en Pandas es clave para disponer de unos conjuntos de datos en los que sea fácil reconocer su contenido. Además de esto saber asignar un nombre a las filas también es de ayuda al trabajar con datos.

Imágenes: Pixabay (rawpixel)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Curiosidad: El puerto 80 y los números de puerto

Durante décadas, cuando escribías una dirección web y pulsabas Intro, tu navegador hacía algo que…

1 día ago

Cómo Proyectar Cuándo Alcanzarás la Independencia Financiera

La independencia financiera es el punto en el que tus inversiones generan suficientes rendimientos para…

3 días ago

Cómo Elegir el Test de Hipótesis Correcto para tus Datos

Tienes dos grupos de datos y quieres saber si son estadísticamente distintos. O tienes una…

1 semana ago

Tuplas vs Listas en Python: parecen lo mismo, pero no

A primera vista, tuplas y listas son casi idénticas. Ambas guardan colecciones ordenadas de elementos.…

1 semana ago

Qué significa realmente “calidad de datos”

"Nuestros datos no tienen buena calidad." Escuchas esto constantemente en reuniones. El problema es que…

2 semanas ago

Cómo Detectar Pseudo-IDs y Data Leakage en el Constructor de Scorecards

El artículo Data Leakage en Credit Scoring explicó por qué este es el error más…

2 semanas ago

This website uses cookies.