Python

Pandas: Renombrar columnas en Pandas

Los DataFrame de Pandas ofrecen la posibilidad de almacenar datos con indexación, tanto para filas como para columnas. Índices que puede ser necesario cambiar. Para ello se puede usar el método set_axis(), aunque puede ser poco productivo cuando solamente se quiere cambiar unos pocos índices. En estos caso se puede usar el método rename(). Veamos a continuación la forma de emplear este método para renombrar columnas en Pandas o también filas.

Cambiar el nombre de todas la columnas con set_axis()

El método set_axis() de los DataFrame de Pandas permite modificar el nombre de los índices tanto de las filas como las columnas. Así si tenemos el siguiente DataFrame

import pandas as pd

df = pd.DataFrame({'col 1': [1, 2, 3],
                   'col 2': [4, 5, 6],
                   'col 3': [7, 8, 9],
                   'Resume': [10, 11, 12]})

Es posible cambiar todos los nombres de las columnas mediante una línea como la siguiente.

df.set_axis(['X', 'Y', 'Z', 'Resume'], axis=1)
   X  Y  Z  Resume
0  1  4  7      10
1  2  5  8      11
2  3  6  9      12

El primer parámetro del método del método son los nombres y el segundo el eje sobre el que se aplica. Como es habitual el valor 0 indica las filas, valor por defecto, y 1 las columnas. Nótese además que el método, tal como se ha usado, devuelve un nuevo DataFrame con los nuevos ejes, no modifica el original. Para modificar el objeto original en lugar de crear uno nuevo es necesario asignar el valor verdadero al parámetro inplace.

Cambiar el nombre de algunas columnas con rename()

El método rename() es algo más flexible que el anterior, ya que permite cambiar el nombre de solo unas columnas. Para lo que como primer parámetro admite un diccionario donde la clave es el nombre antiguo y el valor es el nuevo. Por lo que para renombrar la primera columna solamente se debería escribir la siguiente línea de código.

df.rename({'col 1': 'X'}, axis=1)
   X  col 2  col 3  Resume
0  1      4      7      10
1  2      5      8      11
2  3      6      9      12

Al igual que set_axis() el método se aplica a las filas, por lo que para emplearlo en las columnas es necesario indicarlo mediante el parámetro axis. El diccionario puede tener tantos valores como sea necesario, pudiéndose modificar todos los valores.

df.rename({'col 1': 'X', 'col 2': 'Y', 'col 3': 'Z'}, axis=1)
   X  Y  Z  Resume
0  1  4  7      10
1  2  5  8      11
2  3  6  9      12

Cambiar el nombre de los índices en las filas

Aunque sea menos habitual también es posible cambiar el nombre de los indices. Usando el método de la misma forma que en el caso de las columnas, pero cambiando el valor del parámetro axis.

df.rename({1: 10})
    col 1  col 2  col 3  Resume
0       1      4      7      10
10      2      5      8      11
2       3      6      9      12

Aplicar los cambios en el propio DataFrame

Al igual que set_axis() el método crea un nuevo objeto con los cambios, algo que no es eficaz cuando se trabaja con objetos grandes ya que se crean varias copias de los objetos en memoria. En estos casos es posible hacer que el cambio se aplique al propio objeto mediante la propiedad inplace.

df.rename({'col 1': 'X'}, axis=1, inplace=True)

Conclusiones

En esta entrada se ha visto como el uso del método rename() facilita renombrar columnas en Pandas.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Visualización de datos con Pyjanitor y Matplotlib o Seaborn: Potenciando el análisis visual

La visualización de datos es una parte clave del análisis de datos y comunicación de…

9 horas ago

Desmitificando Elliptic Envelope: Una exploración de la detección de anomalías con estimación de covarianza elíptica

Entre los algoritmos de Machine Learning para la detección de anomalías Elliptic Envelope destaca por…

3 días ago

Integración de Auth0 en una aplicación Express

La autenticación de los usuarios es un parte fundamental para cualquier aplicación o servicio en…

5 días ago

Tres libros para celebrar el Día del Libro aprendiendo sobre Machine Learning

Hoy es el día del libro. Qué mejor manera de celebrar este día que recomendar…

6 días ago

Transformación de datos con Pyjanitor: Potenciando el análisis de datos

La transformación de los datos es una fase crucial en cualquier proyecto de ciencia de…

1 semana ago

La distancia de Mahalanobis

Dentro del aprendizaje automático, es habitual tener que trabajar con conjuntos de datos multidimensionales donde…

1 semana ago

This website uses cookies.