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;precio
00731;Cuaderno profesional;23,50
01204;Plumas azules (caja);118,00
00090;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). Si el archivo separara columnas con comas, cada precio se partiría en dos columnas y nadie podría leerlo. Así que el programa que lo escribió eligió otro separador: el punto y coma.

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 pd

with 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: se guarda tal como la escribiste para compararla. Solo tú y tu Maestro ven tus predicciones.

Ejemplo 2 de 3, se abre cuando expliques este

Haz tu predicción

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 de medidas. 23,50 usa coma decimal; 23.50, punto. Si el separador es punto y coma, casi seguro la coma es decimal.

  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. Si tienes a la mano un archivo de tu trabajo, pégale a tu Maestro sus primeras líneas. Quita antes cualquier dato personal.

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?