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)
📌 ¿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
- Dict to DataFrame in Pandas
- Add a Column to a DataFrame in Pandas
- Sort DataFrame in Pandas
- Creating an Empty DataFrame in Pandas
❓ 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']