8 - Buenas Prácticas y Ejercicios Prácticos con CSV

Para finalizar este tutorial, abordaremos algunas buenas prácticas que te ayudarán a trabajar de manera más eficiente y a evitar problemas comunes con los archivos CSV, seguidas de algunos ejercicios prácticos para consolidar lo aprendido.

Buenas prácticas

Seguir estas recomendaciones te permitirá crear y manejar archivos CSV de forma más robusta y compatible.

Documentar el separador y la codificación

Siempre que compartas o generes un archivo CSV, es una buena práctica documentar qué delimitador (coma, punto y coma, tabulación) y qué codificación (UTF-8, ISO-8859-1) se utilizaron. Esto evita problemas de interpretación en el receptor.

  • Puedes incluir esta información en el nombre del archivo (ej. datos_productos_utf8_coma.csv).
  • O en un archivo README.txt adjunto.
  • Idealmente, usar siempre UTF-8 y coma como separador, a menos que haya una razón específica para no hacerlo.

Usar nombres de columnas claros

Los encabezados de las columnas deben ser descriptivos, concisos y no contener caracteres especiales o espacios si es posible (usar guiones bajos _ en su lugar). Esto facilita el procesamiento programático y la comprensión humana.

  • Mal: Nombre Cliente, Fecha de Venta
  • Bien: nombre_cliente, fecha_venta

Evitar ambigüedades en datos

  • Fechas: Utiliza un formato de fecha estándar e inequívoco, como YYYY-MM-DD (ej. 2023-10-27). Evita formatos como MM/DD/YY o DD/MM/YY que pueden ser confusos.
  • Números: Si usas decimales, asegúrate de que el separador decimal sea consistente (punto . es el estándar en programación, pero la coma , es común en algunas regiones). Si usas coma como separador decimal, entonces el delimitador de campos no debería ser la coma.
  • Valores booleanos: Usa true/false, 1/0 o T/F de forma consistente.

Versionado y control de cambios en CSV grandes

Para archivos CSV que cambian con frecuencia o son parte de un proyecto colaborativo, considera usar sistemas de control de versiones como Git. Aunque Git no está optimizado para archivos binarios grandes, para CSV de tamaño razonable puede ser útil para rastrear cambios. Para CSV muy grandes, considera soluciones de versionado de datos (Data Version Control - DVC) o bases de datos.

Ejercicios prácticos

Aplica lo aprendido con estos ejercicios. Puedes usar Python con pandas o el lenguaje de tu elección.

Ejercicio 1: Crear un CSV de productos

Crea un script que genere un archivo CSV llamado productos_inventario.csv con las siguientes columnas y al menos 5 registros:

  • id_producto (entero)
  • nombre_producto (cadena)
  • categoria (cadena, ej. "Electrónica", "Alimentos", "Hogar")
  • precio_unitario (decimal)
  • stock_disponible (entero)
  • fecha_ultima_revision (fecha en formato YYYY-MM-DD)

Asegúrate de que al menos un producto tenga un nombre con una coma interna (ej. "Televisor, Smart TV") y que se maneje correctamente con comillas.

Ejercicio 2: Analizar un dataset clásico (ejemplo: Titanic en Kaggle)

Descarga el dataset titanic.csv de Kaggle (puedes buscar "Titanic Dataset Kaggle" y descargar el archivo train.csv). Luego, escribe un script que:

  1. Cargue el archivo titanic.csv en un DataFrame de pandas.
  2. Muestre las primeras 5 filas y la información general del DataFrame (.info(), .describe()).
  3. Calcule el número de sobrevivientes y no sobrevivientes.
  4. Calcule la tasa de supervivencia por género.
  5. Encuentre la edad promedio de los pasajeros.
  6. Maneje los valores nulos en la columna 'Age' (puedes rellenarlos con la media o mediana).
  7. Guarde un nuevo CSV llamado titanic_analisis.csv con las columnas Survived, Pclass, Sex, Age, Fare, y la nueva columna FamilySize (sumando SibSp y Parch).

Ejercicio 3: Exportar resultados de un análisis a CSV

Partiendo del ejercicio anterior, supongamos que tienes un DataFrame con los resultados de un análisis (ej. la tasa de supervivencia por clase y género). Escribe un script que:

  1. Cree un DataFrame de pandas con datos ficticios o reales de un análisis (ej. Clase,Genero,Tasa_Supervivencia).
  2. Exporte este DataFrame a un archivo CSV llamado reporte_supervivencia.csv.
  3. Asegúrate de que el archivo no incluya el índice del DataFrame.

Mini proyecto: Aplicación simple que lea, filtre y guarde CSV

Desarrolla una pequeña aplicación (puede ser en Python con una interfaz de línea de comandos simple) que permita al usuario:

  1. Especificar la ruta de un archivo CSV de entrada.
  2. Especificar una columna y un valor para filtrar las filas (ej. filtrar productos por categoria == 'Electrónica').
  3. Especificar las columnas que desea mantener en el archivo de salida.
  4. Guardar los resultados filtrados y seleccionados en un nuevo archivo CSV de salida.

Este mini proyecto integrará la lectura, el filtrado, la selección y la escritura de CSV, consolidando gran parte de lo aprendido en el tutorial.