18 votos

Estrategia de edición de archivos de valores separados por comas (CSV)

Cuando trabajo en proyectos de análisis de datos, suelo almacenar los datos en archivos delimitados por comas o tabulaciones (CSV, TSV). En cambio, los datos suelen almacenarse en un sistema de gestión de bases de datos específico. Para muchas de mis aplicaciones, esto sería exagerar.

Puedo editar archivos CSV y TSV en Excel (o presumiblemente en otro programa de hojas de cálculo). Esto tiene ventajas:

  • las hojas de cálculo facilitan la introducción de datos

También hay varios problemas:

  • Trabajar con archivos CSV y TSV lleva a una amplia gama de mensajes de advertencia sobre diversas características que se pierden y cómo sólo se guardará la hoja activa y así sucesivamente. Por lo tanto, es molesto si sólo desea abrir el archivo y hacer un pequeño cambio.
  • Hace muchas conversiones "supuestamente inteligentes". Por ejemplo, si introduces 12/3, pensará que quieres introducir una fecha. ACTUALIZACIÓN: Debería haber mencionado que el ejemplo de la fecha es sólo uno de muchos ejemplos; la mayoría de los problemas parecen estar relacionados con una conversión inadecuada. En particular, los campos de texto que parecen números o fechas causan problemas.

Como alternativa, podría trabajar directamente con el archivo de texto en un editor de texto estándar. Esto garantiza que lo que introduzco es lo que se registra. Sin embargo, es una forma muy incómoda de introducir datos (las columnas no se alinean; es difícil introducir datos simplemente en varias celdas; etc.).

Pregunta

  • ¿Cuál es una buena estrategia para trabajar con ficheros de datos CSV o TSV? Es decir, ¿qué estrategia facilita la introducción y manipulación de los datos y, al mismo tiempo que lo que se introduce se interpreta correctamente?

2voto

CarmineSantini Puntos 296

Excel no es muy amigable con los CSV. Por ejemplo, si introdujera "1.300" en Excel y lo guardara como un valor separado por comas, ¡le dejaría! Esto puede ser un gran problema (me lo encuentro a menudo cuando recibo archivos de otros).

Personalmente utilizo OpenOffice.org Calc, también utilizo muchas de las soluciones enumeradas anteriormente, sin embargo muchas de estas no tienen la funcionalidad y la facilidad de uso que se requieren para la edición habitual. OOO Calc es mucho más inteligente que Excel, aunque al ser un programa de hoja de cálculo, todavía tendrás que introducir "=12/3" en lugar de "12/3", de lo contrario estarás introduciendo un valor, en lugar de un cálculo.

Pruébalo, no te decepcionará.

1voto

Me gusta Gnumeric porque no intenta ser tan idiota-resistente como otros (no grita sobre la funcionalidad perdida) y trabaja con datos grandes... sin embargo creo que es sólo para Linux.

1voto

dhill Puntos 126

Sólo tiene que utilizar Editor de Ron . Es como Excel sin la "ayuda".

Del sitio:

Ron's Editor es un potente editor de texto tabular, o CSV. Puede abrir cualquier formato de texto separado, incluidos los archivos estándar separados por comas y tabulaciones (CSV y TSV). estándar (CSV y TSV), y permite un control total de su su contenido y estructura.

No sólo se pueden editar archivos de texto tabular, sino que filtrarse y resumirse en tantas vistas adicionales como sea necesario, añadiendo una potente función de análisis.

  • Licencia: Gratuita para uso personal/evaluación
  • Funciona con: Windows 32/64 bits 2000/XP/2003/Vista/

1voto

David Puntos 41

Personalmente, me gusta utilizar la idea de "base de datos relacional" para gestionar archivos CSV. Los archivos CSV son buenos para intercambiar datos, pero no contienen lógica de negocio. Mi experiencia de trabajo con CSV es que "hay muchas iteraciones con el negocio para refinar el análisis". Trabajar sólo con archivos de texto plano (CSV) planteará muchos retos. Por ejemplo, el archivo CSV no mostrará "qué hace que los datos sean únicos", es decir, cuál es la "clave primaria de cada fila". Esto causará grandes problemas más adelante, cuando tengamos que unir otras fuentes de datos.

SQLite es una buena herramienta para convertir CSV en una base de datos relacional y, al igual que CSV, es fácil de intercambiar y no es necesario configurar ningún servidor. Y lo que es más importante, se soporta muy bien en R y otros programas estadísticos.

Mi estrategia es mantener siempre unos "datos limpios" en una base de datos relacional. Y mantener clara la clave primaria de cada tabla.

He aquí un ejemplo de lo que puede ocurrir en la vida real (supongamos que vendemos libros):

  • El primer día recibí un archivo CSV con toda la información de los clientes.
  • El segundo día, recibí otro archivo CSV con toda la información del producto (libro). Por alguna razón, la empresa dijo que no había ISBN disponible y que la combinación del nombre del libro y el nombre del autor era la clave principal.
  • Día 3, Negocio encontró que la edición del libro necesita ser contabilizada, envían otro CSV para "sobrescribir" el CSV del día2.
  • Día 4, Negocio encontró información del cliente puede ser actualizada (como el cambio de dirección), envían una versión actualizada de la información del cliente.

Ahora, puede ver la ventaja de limpiar los datos y guardarlos en una base de datos relacional. Con el ID del cliente como clave primaria, y el nombre del libro, el autor y la edición como clave primaria. Es muy fácil actualizar los datos e incorporar los cambios necesarios. Además, la clave primaria también proporciona "restricciones" y "control de sanidad" para los nuevos datos.

0voto

Alex Ciarlillo Puntos 40

Si utiliza la función "Importar datos" de Excel, le dará la opción de seleccionar el tipo de datos para cada columna. Puede seleccionar todas las columnas y utilizar el tipo de datos "Texto".

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X