Skip to content
Empieza gratis

¿Por qué mi CSV viene con punto y coma?

Descubre por qué un archivo separa con punto y coma donde la coma es decimal, y aprende a leer su separador y su marca decimal en el texto.

Curso gratis. Tu Maestro, una IA, .

La lista de precios del proveedor de Valencia llega así, cuando la abres como texto:

lista_precios.csv
sku;descripcion;precio00731;Cuaderno profesional;23,5001204;Plumas azules (caja);118,0000090;Goma blanca;9,90
Datos sintéticos, CC0. El archivo, visto como texto.

Un CSV, en teoría, separa con comas. Pero aquí la coma ya tiene trabajo: es la marca decimal. 23,50 son veintitrés pesos con cincuenta centavos (o euros, en este caso). En este archivo el programa eligió punto y coma. También puede existir un CSV con comas entre columnas y un precio entre comillas, como 00731,"23,50": un lector CSV respeta esas comillas y no divide el precio. El delimitador y la marca decimal son decisiones distintas.

Quién decide el separador

En Windows, el separador que Excel usa al guardar un .csv viene de la configuración regional del equipo. Microsoft lo explica en su ayuda: el separador de lista predeterminado es la coma, y se cambia en la configuración de región de Windows. Y agrega la parte que explica este archivo: si el separador decimal es una coma, eso "obliga a Excel a usar un punto y coma para el separador de lista". En una computadora configurada para escribir 23,50, Excel guarda los CSV con punto y coma.

Ninguno de los dos está mal. Son dos convenciones, y el archivo no dice cuál usa: se ve en el texto. Lo que sí está mal es leerlo con la convención equivocada. Predice qué hace pandas, que por omisión espera comas y punto decimal:

pandas sin instrucciones

Ejemplo 1 de 3

example.py
import pandas as pdwith open("lista_precios.csv", "w", encoding="utf-8") as archivo:    archivo.write("sku;descripcion;precio\n00731;Cuaderno profesional;23,50\n01204;Plumas azules (caja);118,00\n00090;Goma blanca;9,90\n")tabla = pd.read_csv("lista_precios.csv")print(tabla.shape)print(tabla.columns.tolist())

Adivinar está bien. Lo que escribas se queda en este navegador y te espera en tu curso.

Ejemplo 2 de 3, se abre cuando expliques este

El primer caso es el que más cuesta en el trabajo: pandas no se quejó. Devolvió una tabla con la forma equivocada y siguió adelante. Si alguna vez abres un CSV con doble clic y ves cada línea completa metida en la columna A, sospecha lo mismo: el archivo usa un separador distinto del que supuso el programa. El archivo está bien; se leyó con otras reglas.

Cómo leer las reglas de un archivo

Antes de abrirlo en cualquier programa, mira las primeras líneas como texto y responde tres preguntas:

  1. ¿Qué separa las columnas?

    Mira el encabezado: los nombres de las columnas van separados por el mismo carácter que los valores. Puede ser coma, punto y coma, tabulador o barra vertical |. Cuenta: si el encabezado tiene cuatro nombres, cada fila debería partirse en cuatro valores con ese carácter.

  2. ¿Cómo escribe los decimales?

    Busca una columna de dinero o medidas: 23,50 usa coma decimal y 23.50, punto. Un separador de punto y coma no demuestra cuál usa; confirma los valores y las reglas del emisor.

  3. ¿Agrupa los miles?

    Un valor como 1.180,00 usa el punto para agrupar miles y la coma para los decimales. 1,180.00 es al revés. Si no se lo dices al programa, lo va a leer como texto o, peor, como otro número.

Con esas tres respuestas ya sabes qué decirle a cualquier programa. En pandas y en DuckDB las opciones se llaman distinto, pero son las mismas tres decisiones:

Lo que vistepandas (read_csv)DuckDB (read_csv)
Separador ;sep=";"delim=';'
Coma decimaldecimal=","decimal_separator=','
Punto de milesthousands="."thousands='.'

DuckDB también acepta sep como otro nombre de delim. Un detalle suyo: thousands tiene que ser un solo carácter y distinto del decimal_separator.

En Excel, esas respuestas se dan al importar el archivo, como ves en el módulo 4. Muéstrale a tu Maestro unas filas inventadas que conserven el formato del archivo. No pegues datos personales, nombres reales de clientes ni información confidencial de tu organización.

Una tentación común es cambiar la configuración regional de Windows para que Excel lea el archivo del proveedor. Microsoft advierte que ese cambio es global: "afectará a todas las aplicaciones". Para leer un archivo no hace falta tocar nada del sistema: basta con decirle al programa qué reglas usa ese archivo.

Compruébalo

Comprueba lo que sabes: Un sistema de facturación exporta esto: folio|fecha|total en el encabezado y A-101|03/09/2026|1.250,75 en la primera fila. ¿Qué reglas usa?