Saltar al contenido principal
CSV First Aid

Cómo arreglar 'Unnamed: 0' en Pandas — guía completa

La columna 'Unnamed: 0' es uno de los errores de Pandas más googleados. Aparece cuando un CSV se guardó con df.to_csv() sin index=False, escribiendo el índice del DataFrame como primera columna sin nombre. Aquí cuatro formas de arreglarlo.

Método 1: Evitarlo (lo mejor)

Al guardar: df.to_csv('data.csv', index=False). Esto omite la columna de índice por completo. Si el índice lleva datos útiles (como un índice de fechas), nómbralo primero: df.index.name = 'date' — entonces Pandas escribe un encabezado real.


Método 2: Arreglar al leer

Al cargar un CSV que ya tiene el índice sin nombre: df = pd.read_csv('data.csv', index_col=0). Esto le dice a Pandas que trate la columna 0 como índice en vez de dato. El nombre 'Unnamed: 0' desaparece porque pasa a ser el índice, no una columna de datos.


Método 3: Borrar la columna tras cargar

Si ya cargaste el DataFrame: df = df.drop(columns=['Unnamed: 0']). O más robusto: df = df.loc[:, ~df.columns.str.contains('^Unnamed')]. Esto elimina TODAS las columnas sin nombre independientemente de cuántas haya.


Método 4: Arreglar el propio CSV

Si necesitas arreglar el CSV una vez y compartirlo (p. ej. subirlo a una base de datos, mandarlo a un compañero): usa CSV First Aid. Suelta el archivo, el fix 'Pandas unnamed index' auto-detecta y quita la columna, descargas un CSV limpio.

Es el mejor enfoque cuando: no controlas el código que lee el archivo, lo compartes con no-usuarios de Python, o quieres arreglarlo permanentemente en vez de añadir index_col=0 por todas partes.


¿Por qué ocurre?

to_csv() de Pandas incluye el índice por defecto porque los DataFrames siempre tienen un índice. Cuando creas un DataFrame desde una lista o dict sin especificar índice, Pandas auto-genera un RangeIndex (0, 1, 2, ...). Al exportar, eso se escribe como primera columna sin nombre.

Al re-leer, Pandas no puede distinguirlo de una columna de datos real, así que lo carga como dato y genera el nombre 'Unnamed: 0' (porque la celda de encabezado está vacía).

¿Python no instalado? CSV First Aid quita la columna Unnamed: 0 en el navegador.

Arregla tu CSV ahora →

Herramientas relacionadas