Trabajo con archivos CSV en Python: leer, escribir y procesar datos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con archivos CSV en Python

CSV (Comma Separated Values) es uno de los formatos más comunes para almacenar datos tabulares. Se utiliza en diversos ámbitos: desde la exportación de tablas de Excel hasta el intercambio de información entre servicios web y bases de datos.

Python ofrece herramientas eficientes para trabajar con archivos CSV. Puedes usar el módulo estándar csv o la potente biblioteca pandas para análisis de datos. En este artículo exploramos métodos para leer y escribir archivos CSV, procesar datos, evitar errores y optimizar el rendimiento con archivos grandes.

Fundamentos del formato CSV

Estructura de un archivo CSV

CSV es un formato de texto simple. Cada línea del archivo contiene un registro. Los valores dentro de un registro se separan con caracteres especiales. Por defecto se usa la coma, pero también pueden emplearse punto y coma, tabulaciones o barras verticales.

El contenido de un archivo CSV típico se ve así:

Nombre,Edad,Ciudad
Ana,25,Madrid
Carlos,30,Barcelona

Ventajas del formato CSV

El formato CSV tiene varias ventajas importantes:

  • Estructura simple y legible
  • Soporte en la mayoría de programas y lenguajes de programación
  • Tamaño de archivo reducido en comparación con otros formatos
  • Posibilidad de edición en editores de texto
  • Versatilidad para intercambiar datos entre diferentes sistemas

Trabajar con CSV usando el módulo csv

Lectura básica de archivos CSV

El módulo estándar csv de Python es ideal para operaciones básicas con archivos CSV. Para leer datos de forma simple se usa el siguiente enfoque:

import csv

with open("datos.csv", newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

Resultado de la ejecución:

['Nombre', 'Edad', 'Ciudad']
['Ana', '25', 'Madrid']
['Carlos', '30', 'Barcelona']

Lectura usando encabezados

Para trabajar cómodamente con columnas nombradas se utiliza csv.DictReader:

with open("datos.csv", encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["Nombre"], row["Ciudad"])

Este método crea automáticamente diccionarios para cada fila. Las claves son los valores de la primera línea del archivo.

Escritura de datos en un archivo CSV

Escritura simple de filas

La forma básica de escribir datos usa csv.writer:

with open("salida.csv", mode='w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(["Nombre", "Edad"])
    writer.writerow(["Luis", 35])

Escritura de datos en diccionario

Para escribir datos estructurados es útil usar csv.DictWriter:

data = [
    {"Nombre": "María", "Edad": 28},
    {"Nombre": "Alejandro", "Edad": 40},
]

with open("personas.csv", "w", newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=["Nombre", "Edad"])
    writer.writeheader()
    writer.writerows(data)

Configuración de parámetros de lectura y escritura

El módulo csv permite ajustar varios parámetros:

  • delimiter: especifica el separador de campos
  • quotechar: carácter para encerrar valores entre comillas
  • skipinitialspace: omite espacios después del separador
  • lineterminator: carácter de fin de línea

Trabajar con CSV en la biblioteca pandas

Instalación y carga de pandas

La biblioteca pandas ofrece capacidades más potentes para trabajar con archivos CSV:

pip install pandas

Lectura de archivos CSV en pandas

El método principal para leer archivos CSV:


                    

Blogs

Book Recommendations