Skip to content

Cómo renombrar columnas en Pandas

Updated on

Renombrar columnas es una de las tareas más frecuentes al limpiar u organizar datos en Pandas. Nombres de columnas claros y descriptivos hacen que tu DataFrame sea más legible y mejoran drásticamente el análisis posterior.

En esta guía actualizada para 2025, aprenderás todas las formas principales de renombrar columnas en Pandas, con buenas prácticas, ejemplos y errores comunes que debes evitar.

¿Quieres una forma más rápida de explorar y visualizar tu DataFrame de Pandas sin crear gráficos manualmente?

PyGWalker convierte cualquier DataFrame en una interfaz de exploración visual al estilo Tableau. Pruébalo aquí: https://github.com/Kanaries/pygwalker (opens in a new tab)

PyGWalker for Data visualization (opens in a new tab)


📌 ¿Qué significa renombrar columnas en Pandas?

Renombrar columnas simplemente significa cambiar una o varias etiquetas de columna en tu DataFrame.
Esto es útil cuando:

  • Los nombres de las columnas son poco claros o inconsistentes
  • Contienen espacios, caracteres especiales o errores tipográficos
  • Necesitas nombres estandarizados para hacer merges o modelado
  • Quieres etiquetas más legibles para presentación o visualización

Pandas ofrece varias formas cómodas de renombrar columnas, cada una pensada para necesidades diferentes.


🔧 Cómo renombrar columnas en Pandas (todos los métodos)

A continuación se muestran los enfoques más comunes y recomendados.


✅ 1. Renombrar una sola columna con rename()

Este es el método más seguro y explícito.

import pandas as pd
 
df = pd.DataFrame({
    'Name': ['John', 'Alex', 'Peter'],
    'Age': [25, 24, 28],
    'Gender': ['Male', 'Male', 'Male']
})
 
df = df.rename(columns={'Age': 'Years'})
print(df)

Output:

    Name  Years Gender
0   John     25   Male
1   Alex     24   Male
2  Peter     28   Male

✅ 2. Renombrar varias columnas con rename()

Solo pasa un diccionario más grande.

df = df.rename(columns={
    'Age': 'Years',
    'Gender': 'Sex'
})

Este enfoque evita problemas accidentales con el orden de las columnas y preserva el índice.


✅ 3. Renombrar todas las columnas a la vez usando df.columns = [...]

Útil cuando conoces todos los nuevos nombres de columna.

df.columns = ['ID', 'Years', 'Dept']

⚠️ Importante:
La longitud de la lista debe coincidir con el número de columnas.


✅ 4. Renombrar columnas con set_axis() (estilo funcional)

Un método que devuelve un nuevo DataFrame a menos que uses inplace=True.

df = df.set_axis(['A', 'Years', 'B'], axis=1)

Aunque es flexible, este método se usa menos para renombrados simples.


✅ 5. Renombrar columnas dinámicamente con comprensión de listas

Perfecto para operaciones de formateo masivo:

df.columns = [col.replace('_', ' ').title() for col in df.columns]

Ideal para limpieza automatizada:

  • Convertir a minúsculas
  • Eliminar espacios
  • Añadir prefijos o sufijos

Ejemplos:

df.columns = [col.lower() for col in df.columns]
df.columns = [f"user_{col}" for col in df.columns]

✅ 6. Renombrar columnas por índice

Renombrar por índice de columna se necesita raramente, pero está soportado:

df = df.rename(columns={2: 'Dept'})

Es útil cuando los nombres de columna son desconocidos, están duplicados o se generan dinámicamente.


🧠 Buenas prácticas para renombrar columnas

✔ Prefiere rename() por claridad

rename() es explícito y evita sorpresas.

✔ Evita modificar df.columns salvo que renombres todas

Cambiar la lista completa es rápido, pero implacable si las cantidades no coinciden.

✔ Usa minúsculas + guion bajo para pipelines de datos limpios

df.columns = [c.lower().replace(' ', '_') for c in df.columns]

✔ Evita inplace=True

La propia documentación de Pandas indica que inplace=True no ofrece ventaja de rendimiento.


⚡ Chuleta rápida

df.rename(columns={'old': 'new'})
df.columns = ['A', 'B', 'C']
df = df.set_axis(['A', 'B', 'C'], axis=1)
df.columns = [col.lower() for col in df.columns]
df.rename(columns={2: 'new_name'})

🏁 Conclusión

Renombrar columnas es una parte sencilla pero esencial al preparar un DataFrame para análisis. Pandas ofrece múltiples formas de hacerlo: desde renombrados explícitos con rename(), hasta formateo masivo mediante comprensión de listas.

El enfoque recomendado es:

  • Usar rename() cuando renombres columnas específicas
  • Usar df.columns = [...] cuando renombres todas las columnas
  • Usar comprensión de listas para transformaciones dinámicas
  • Usar renombrado basado en índice solo cuando sea necesario

Con estas herramientas, puedes mantener tus datos limpios, consistentes y fáciles de manejar.


🔗 Tutoriales relacionados


❓ Preguntas frecuentes

1. ¿Cómo renombro una columna en Pandas?

Usa rename():

df.rename(columns={'old': 'new'})

2. ¿Cómo renombro una columna por índice?

df.rename(columns={0: 'id'})

3. ¿Cómo renombro todas las columnas a la vez?

df.columns = ['A', 'B', 'C']