1 - Introducción y Estructura de un archivo CSV

¿Qué es un archivo CSV?

Un archivo CSV (Comma Separated Values o Valores Separados por Comas) es un formato de archivo de texto plano que utiliza comas para separar los valores. Cada línea del archivo representa una fila de datos, y cada valor dentro de una línea es un campo de esa fila. Es un formato muy simple y ampliamente utilizado para el intercambio de datos tabulares entre diferentes aplicaciones.

A pesar de su nombre, los archivos CSV no siempre usan comas como separador; pueden usar otros caracteres como punto y coma, tabulaciones, etc., dependiendo de la configuración regional o la aplicación que los genera.

Diferencias con otros formatos

  • Excel (XLSX/XLS): Los archivos de Excel son binarios y pueden contener múltiples hojas, formatos complejos, fórmulas, macros y gráficos. Un CSV es texto plano, solo contiene datos y no tiene formato ni funcionalidades avanzadas. Excel puede abrir y guardar CSV, pero al hacerlo, se pierde toda la información de formato y las hojas adicionales.
  • TSV (Tab Separated Values): Similar a CSV, pero utiliza tabulaciones en lugar de comas como separador de campos. Es útil cuando los datos pueden contener comas internamente, evitando conflictos sin necesidad de comillas.
  • JSON (JavaScript Object Notation): JSON es un formato de intercambio de datos estructurados que utiliza una sintaxis basada en objetos y arreglos de JavaScript. Es más flexible que CSV para representar datos jerárquicos o anidados, mientras que CSV es ideal para datos tabulares simples.

Usos más comunes

  • Ciencia de Datos y Análisis: Es el formato preferido para almacenar y compartir datasets pequeños y medianos debido a su simplicidad y facilidad de procesamiento con herramientas como Pandas en Python.
  • Programación: Se utiliza para importar/exportar configuraciones, logs, o datos de prueba en aplicaciones.
  • Negocios: Comúnmente usado para exportar informes de ventas, listas de clientes, datos de inventario desde sistemas de gestión o bases de datos.
  • Migración de Datos: Una forma sencilla de mover datos entre diferentes sistemas o bases de datos.

Estructura de un archivo CSV

La estructura básica de un archivo CSV es muy sencilla:

columna1,columna2,columna3
valor1_1,valor1_2,valor1_3
valor2_1,valor2_2,valor2_3
  • Cada línea es un registro de datos.
  • Los campos dentro de cada registro están separados por un delimitador (comúnmente una coma).
  • La primera línea a menudo contiene los nombres de las columnas (encabezados), aunque no es obligatorio.

Separadores más frecuentes

  • Coma (,): El separador más común y el que da nombre al formato. Ejemplo: nombre,edad,ciudad
  • Punto y coma (;): Frecuentemente usado en regiones donde la coma es el separador decimal (ej. muchos países europeos y latinoamericanos) para evitar ambigüedades. Ejemplo: nombre;edad;ciudad
  • Tabulación (\t): Utilizado en archivos TSV. Es útil cuando los datos pueden contener comas o puntos y comas. Ejemplo: nombre\tedad\tciudad
  • Otros: Ocasionalmente se pueden encontrar otros separadores como el pipe (|) o el circunflejo (^), pero son menos comunes.

Codificación de texto

La codificación de texto define cómo los caracteres son representados en bytes. Es crucial para que los caracteres especiales (acentos, eñes, etc.) se muestren correctamente.

  • UTF-8: Es la codificación más recomendada y universal. Soporta todos los caracteres de todos los idiomas y es compatible con ASCII. Debería ser la opción por defecto siempre que sea posible.
  • ANSI (Windows-1252): Una codificación común en sistemas Windows, especialmente en archivos CSV generados por Excel en versiones antiguas. Puede causar problemas con caracteres especiales si se abre en sistemas que esperan UTF-8.
  • ISO-8859-1 (Latin-1): Similar a ANSI, cubre la mayoría de los caracteres de Europa Occidental. También puede generar problemas de compatibilidad.

Es importante saber qué codificación usa un archivo CSV para leerlo correctamente y evitar caracteres extraños.

Encabezados y filas de datos

  • Encabezados: La primera línea de un archivo CSV a menudo contiene los nombres de las columnas. Esto facilita la comprensión de los datos y su procesamiento programático, ya que se puede referenciar los datos por su nombre en lugar de por su índice numérico.
  • Filas de Datos: Las líneas subsiguientes contienen los registros de datos. Cada valor en una fila corresponde a la columna definida por el encabezado (si existe).

Limitaciones del formato

  • No jerárquico: CSV es plano; no puede representar datos anidados o estructuras complejas como JSON o XML.
  • Sin tipos de datos explícitos: Todos los datos se almacenan como texto. La interpretación del tipo (número, fecha, booleano) debe hacerse al leer el archivo.
  • Manejo de caracteres especiales: Si un campo contiene el carácter delimitador (ej. una coma en un campo separado por comas) o saltos de línea, debe ser encerrado entre comillas dobles ("). Esto puede complicar la lectura si no se implementa correctamente.
  • Sin metadatos: No hay forma estándar de incluir información sobre el archivo en sí (autor, fecha de creación, etc.) dentro del CSV.