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

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…

1 día 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…

6 días 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

Cómo Verificar la Normalidad de tus Datos antes de un Test Estadístico

Antes de aplicar muchos tests estadísticos clásicos (el t-test, el ANOVA, la regresión lineal) aparece…

3 semanas ago

This website uses cookies.