xan - le magicien du CSV pour le terminal
(github.com/medialab)- Outil basé sur Rust permettant de traiter rapidement et efficacement de très gros fichiers CSV depuis le terminal
- En plus de nombreuses fonctions de manipulation de données, il prend aussi en charge l’affichage, la visualisation, l’analyse, le web scraping, le traitement de texte et l’analyse de réseaux
- En interne, il s’appuie sur le multithreading, un langage d’expression et le traitement parallèle pour offrir de hautes performances
- Peut traiter sans difficulté des fichiers CSV gigantesques, de l’ordre du gigaoctet
- Fournit un langage d’expression dédié bien plus rapide que Python ou Lua
- Permet de mettre en place des flux de données complexes via le chaînage d’une seule ligne de commande
- Va des statistiques simples jusqu’aux visualisations de base comme les heatmaps et les histogrammes
- Inclut des fonctions avancées pour les chercheurs en sciences sociales et l’analyse de données web
- Compatible avec Linux, macOS et Windows
- Reconnaît automatiquement divers formats comme
.tsv,.psv,.ssv,.gz
Exemples de commandes clés
-
Exploration
xan headers: affiche la liste des colonnesxan view: affiche les données sous forme de tableau dans le terminalxan flatten: déplie toutes les valeurs d’une lignexan hist,xan plot,xan heatmap: fonctions de visualisation
-
Filtrage et recherche
xan search -s 키워드 파일.csv: trouve les lignes contenant un mot-clé précisxan filter '조건식' 파일.csv: filtre les lignes avec une expression
-
Transformation
xan select: sélection des colonnesxan map: crée une nouvelle colonne à l’aide d’une expressionxan transform: modifie une colonne existante avec une expression
-
Agrégation et analyse
xan count: compte le nombre de lignesxan frequency: crée une table de fréquencesxan stats: affiche des statistiques descriptivesxan agg: agrégation personnaliséexan groupby: effectue une agrégation par groupe
-
Tri et déduplication
xan sort -s 컬럼: trixan dedup -s 컬럼: suppression des doublons
-
Combinaison
xan join: jointure à partir d’une cléxan merge: fusion de fichiers triésxan cat: concaténation par lignes ou par colonnes
-
Langage d’expression
xan map 'fmt("{} ({})", name, foundation_year)' keyxan filter 'batch > 1'xan transform name 'split(name, ".") | first | upper'- Le langage d’expression est une DSL légère spécialisée dans la manipulation de CSV ; voir dans la documentation officielle la cheat sheet, la liste des fonctions et la liste des fonctions d’agrégation
-
Fonctions de visualisation
xan hist: histogramme en textexan plot: nuage de points / graphique en courbesxan heatmap: heatmap de corrélationxan view -p: affiche le tableau complet dans le terminal
Fonctions avancées
- Prise en charge complète des pipelines d’entrée/sortie standard
- Gestion automatique des fichiers compressés gzip
- DSL de scraping intégrée (conversion HTML → CSV)
- Prise en charge de la lexicométrie et du fuzzy matching :
tokenize,vocab,cluster - Transformations réseau/matrice :
network,matrix
1 commentaires
Je me demandais comment on pouvait l’utiliser, mais même en utilisant seulement
sortoudrop, ça peut déjà être utile.