xan - Penyihir CSV untuk terminal
(github.com/medialab)- Alat berbasis Rust untuk memproses file CSV berukuran besar di terminal dengan cepat dan efisien
- Selain berbagai fitur manipulasi data, juga mendukung tampilan, visualisasi, analisis, web scraping, pemrosesan teks, hingga analisis jaringan
- Secara internal memanfaatkan multithreading, bahasa ekspresi, dan pemrosesan paralel untuk performa tinggi
- Bahkan file CSV superbesar (skala gigabita) dapat diproses tanpa masalah
- Menyediakan bahasa ekspresi khusus yang jauh lebih cepat daripada Python atau Lua
- Dengan perangkaian perintah tunggal, alur data yang kompleks dapat diwujudkan
- Mulai dari statistik sederhana hingga visualisasi dasar seperti heatmap dan histogram
- Mencakup fitur lanjutan untuk peneliti ilmu sosial dan analisis data web
- Mendukung Linux, macOS, dan Windows
- Mengenali otomatis berbagai format seperti
.tsv,.psv,.ssv,.gz
Contoh perintah inti
-
Eksplorasi
xan headers: menampilkan daftar kolomxan view: melihat dalam bentuk tabel di terminalxan flatten: menampilkan semua nilai dalam satu baris secara terbukaxan hist,xan plot,xan heatmap: fitur visualisasi
-
Pemfilteran & pencarian
xan search -s 키워드 파일.csv: mencari baris yang memuat kata kunci tertentuxan filter '조건식' 파일.csv: memfilter baris dengan ekspresi
-
Transformasi
xan select: memilih kolomxan map: membuat kolom baru dengan ekspresixan transform: mengubah kolom yang ada dengan ekspresi
-
Agregasi dan analisis
xan count: menghitung jumlah barisxan frequency: membuat tabel frekuensixan stats: menampilkan statistik deskriptifxan agg: agregasi kustomxan groupby: melakukan agregasi per grup
-
Pengurutan & penghapusan duplikasi
xan sort -s 컬럼: mengurutkanxan dedup -s 컬럼: menghapus duplikasi
-
Penggabungan
xan join: join berdasarkan kuncixan merge: menggabungkan file yang sudah diurutkanxan cat: menggabungkan berdasarkan baris atau kolom
-
Bahasa ekspresi
xan map 'fmt("{} ({})", name, foundation_year)' keyxan filter 'batch > 1'xan transform name 'split(name, ".") | first | upper'- Bahasa ekspresi adalah DSL ringan yang dioptimalkan untuk manipulasi CSV; lihat lembar contekan, daftar fungsi, dan daftar fungsi agregasi di dokumentasi resmi
-
Fitur visualisasi
xan hist: histogram berbasis teksxan plot: scatter plot/grafik garisxan heatmap: heatmap korelasixan view -p: menampilkan seluruh tabel di terminal
Fitur lanjutan
- Dukungan penuh untuk pipeline input/output standar
- Penanganan otomatis file terkompresi gzip
- DSL scraping bawaan (konversi HTML → CSV)
- Mendukung lexicometry, fuzzy matching:
tokenize,vocab,cluster - Transformasi jaringan/matriks:
network,matrix
1 komentar
Saya sempat berpikir bagaimana ini bisa diterapkan, tetapi bahkan hanya menggunakan
sortataudropsaja sudah cukup bermakna.