xan - pháp sư CSV cho terminal
(github.com/medialab)- Công cụ viết bằng Rust giúp xử lý các tệp CSV dung lượng lớn nhanh và hiệu quả ngay trên terminal
- Ngoài nhiều tính năng thao tác dữ liệu, còn hỗ trợ hiển thị, trực quan hóa, phân tích, web scraping, xử lý văn bản, phân tích mạng
- Bên trong sử dụng đa luồng, ngôn ngữ biểu thức, xử lý song song để đạt hiệu năng cao
- Có thể xử lý cả các tệp CSV cực lớn cấp gigabyte mà không gặp vấn đề
- Cung cấp ngôn ngữ biểu thức chuyên dụng nhanh hơn nhiều so với Python hay Lua
- Có thể xây dựng luồng dữ liệu phức tạp bằng chuỗi lệnh đơn
- Hỗ trợ trực quan hóa cơ bản từ thống kê đơn giản đến heatmap, histogram
- Bao gồm các tính năng nâng cao cho nhà nghiên cứu khoa học xã hội và phân tích dữ liệu web
- Hỗ trợ Linux, macOS, Windows
- Tự động nhận diện nhiều định dạng như
.tsv,.psv,.ssv,.gz
Ví dụ lệnh cốt lõi
-
Khám phá
xan headers: in danh sách cộtxan view: xem dưới dạng bảng trong terminalxan flatten: bung toàn bộ giá trị của một hàng để xemxan hist,xan plot,xan heatmap: tính năng trực quan hóa
-
Lọc & tìm kiếm
xan search -s 키워드 파일.csv: tìm các hàng chứa từ khóa cụ thểxan filter '조건식' 파일.csv: lọc hàng bằng biểu thức
-
Biến đổi
xan select: chọn cộtxan map: tạo cột mới bằng biểu thứcxan transform: thay đổi cột hiện có bằng biểu thức
-
Tổng hợp và phân tích
xan count: đếm số hàngxan frequency: tạo bảng tần suấtxan stats: in thống kê mô tảxan agg: tổng hợp do người dùng định nghĩaxan groupby: thực hiện tổng hợp theo nhóm
-
Sắp xếp & loại bỏ trùng lặp
xan sort -s 컬럼: sắp xếpxan dedup -s 컬럼: loại bỏ trùng lặp
-
Kết hợp
xan join: join theo khóaxan merge: gộp các tệp đã sắp xếpxan cat: nối theo hàng hoặc cột
-
Ngôn ngữ biểu thức
xan map 'fmt("{} ({})", name, foundation_year)' keyxan filter 'batch > 1'xan transform name 'split(name, ".") | first | upper'- Ngôn ngữ biểu thức là một DSL gọn nhẹ chuyên cho thao tác CSV; có thể tham khảo cheatsheet, danh sách hàm, danh sách hàm tổng hợp trong tài liệu chính thức
-
Tính năng trực quan hóa
xan hist: histogram dạng văn bảnxan plot: biểu đồ phân tán/biểu đồ đườngxan heatmap: heatmap tương quanxan view -p: hiển thị toàn bộ bảng trong terminal
Tính năng nâng cao
- Hỗ trợ hoàn chỉnh pipeline đầu vào/đầu ra chuẩn
- Tự động xử lý tệp nén gzip
- Tích hợp scraping DSL (chuyển HTML → CSV)
- Hỗ trợ lexicometry, fuzzy matching:
tokenize,vocab,cluster - Chuyển đổi mạng/ma trận:
network,matrix
1 bình luận
Tôi đã tự hỏi có thể ứng dụng thế nào, nhưng có lẽ chỉ cần dùng
sorthoặcdropthôi cũng đã đủ ý nghĩa rồi.