- ターミナルで大容量CSVファイルを高速かつ効率的に処理できるRustベースのツール
- 多様なデータ操作機能に加えて、表示、可視化、分析、Webスクレイピング、テキスト処理、ネットワーク分析までサポート
- 内部的には高性能化のためにマルチスレッド、式言語、並列処理を活用
- 超大規模CSV(ギガバイト級)ファイルも問題なく処理可能
- PythonやLuaよりはるかに高速な専用式言語を提供
- 単一コマンドのチェイニングで複雑なデータフローを実現可能
- 簡単な統計からヒートマップ、ヒストグラムなど基本的な可視化まで可能
- 社会科学研究者やWebデータ分析のための高度な機能を含む
- Linux、macOS、Windowsをすべてサポート
.tsv, .psv, .ssv, .gz など多様なフォーマットを自動認識
主要コマンド例
-
探索
xan headers: カラム一覧を出力
xan view: ターミナルでテーブル形式表示
xan flatten: 1行のすべての値を展開して表示
xan hist, xan plot, xan heatmap: 可視化機能
-
フィルタリング & 検索
xan search -s キーワード ファイル.csv: 特定キーワードを含む行を検索
xan filter '条件式' ファイル.csv: 式で行をフィルタリング
-
変換
xan select: カラム選択
xan map: 式で新しいカラムを作成
xan transform: 既存カラムを式で変更
-
集計と分析
xan count: 行数をカウント
xan frequency: 頻度テーブルを作成
xan stats: 記述統計を出力
xan agg: ユーザー定義集計
xan groupby: グループ単位で集計を実行
-
ソート & 重複削除
xan sort -s カラム: ソート
xan dedup -s カラム: 重複削除
-
結合
xan join: キーを基準に結合
xan merge: ソート済みファイルをマージ
xan cat: 行または列基準で連結
-
式言語
xan map 'fmt("{} ({})", name, foundation_year)' key
xan filter 'batch > 1'
xan transform name 'split(name, ".") | first | upper'
- 式言語はCSV操作に特化した軽量DSLで、公式ドキュメントのチートシート、関数一覧、集計関数一覧を参照可能
-
可視化機能
xan hist: テキストベースのヒストグラム
xan plot: 散布図/折れ線グラフ
xan heatmap: 相関ヒートマップ
xan view -p: ターミナルにテーブル全体を表示
高度な機能
- 標準入出力パイプラインを完全サポート
- gzip圧縮ファイルを自動処理
- スクレイピングDSLを内蔵(HTML → CSV変換)
- lexicometry, fuzzy matching をサポート:
tokenize, vocab, cluster
- ネットワーク/行列変換:
network, matrix
1件のコメント
どう応用できるだろうかと思いましたが、sort や drop を使うだけでも意味がありそうです。