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)
sadalzuud dice
Gracias!!
Miki dice
Muchas gracias!!!!!