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

Subplots en Matplotlib: cómo organizar múltiples gráficos en una sola figura

Llevas un rato analizando datos y tienes cuatro gráficos abiertos en ventanas separadas: ventas, usuarios,…

10 horas ago

Síndrome del objeto brillante en ciencia de datos: el error simétrico a los costes hundidos

Hace poco publiqué una entrada en la que trataba de un sesgo bien documentado: aferrarse…

5 días ago

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

1 semana ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

1 semana ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

2 semanas ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

2 semanas ago

This website uses cookies.