xan - un mago de CSV para la terminal
(github.com/medialab)- Herramienta basada en Rust para procesar archivos CSV grandes de forma rápida y eficiente desde la terminal
- Además de varias funciones de manipulación de datos, también ofrece soporte para visualización, gráficos, análisis, web scraping, procesamiento de texto y análisis de redes
- Internamente aprovecha multithreading, un lenguaje de expresiones y procesamiento en paralelo para lograr alto rendimiento
- Puede manejar sin problemas archivos CSV gigantes (de varios gigabytes)
- Incluye un lenguaje de expresiones dedicado mucho más rápido que Python o Lua
- Permite implementar flujos de datos complejos mediante encadenamiento de comandos en una sola línea
- Va desde estadísticas simples hasta visualizaciones básicas como mapas de calor e histogramas
- Incluye funciones avanzadas para investigadores de ciencias sociales y análisis de datos web
- Compatible con Linux, macOS y Windows
- Reconoce automáticamente varios formatos como
.tsv,.psv,.ssv,.gz
Ejemplos de comandos clave
-
Exploración
xan headers: muestra la lista de columnasxan view: ver en formato de tabla desde la terminalxan flatten: desplegar todos los valores de una filaxan hist,xan plot,xan heatmap: funciones de visualización
-
Filtrado y búsqueda
xan search -s palabra_clave archivo.csv: buscar filas que contengan una palabra clavexan filter 'expresión_condicional' archivo.csv: filtrar filas con expresiones
-
Transformación
xan select: seleccionar columnasxan map: crear una nueva columna con una expresiónxan transform: modificar una columna existente con una expresión
-
Agregación y análisis
xan count: contar filasxan frequency: generar una tabla de frecuenciasxan stats: mostrar estadísticas descriptivasxan agg: agregación definida por el usuarioxan groupby: agregar por grupos
-
Ordenamiento y eliminación de duplicados
xan sort -s columna: ordenarxan dedup -s columna: eliminar duplicados
-
Combinación
xan join: hacer join usando una clavexan merge: fusionar archivos ordenadosxan cat: concatenar por filas o columnas
-
Lenguaje de expresiones
xan map 'fmt("{} ({})", name, foundation_year)' keyxan filter 'batch > 1'xan transform name 'split(name, ".") | first | upper'- El lenguaje de expresiones es un DSL ligero especializado en manipular CSV; en la documentación oficial se pueden consultar la chuleta, la lista de funciones y la lista de funciones de agregación
-
Funciones de visualización
xan hist: histograma basado en textoxan plot: gráfico de dispersión / gráfico de líneasxan heatmap: mapa de calor de correlaciónxan view -p: mostrar la tabla completa en la terminal
Funciones avanzadas
- Soporte completo para pipelines de entrada/salida estándar
- Procesamiento automático de archivos comprimidos con gzip
- DSL de scraping integrado (HTML → CSV)
- Soporte para lexicometry y fuzzy matching:
tokenize,vocab,cluster - Transformación de redes/matrices:
network,matrix
1 comentarios
Me preguntaba cómo se podría aprovechar, pero incluso usar solo
sortodropya tendría sentido.