xan · CLI ตัวเดียวที่ส่อง กรอง และวาดกราฟไฟล์ CSV ได้จบในเทอร์มินัล
xan คือ CLI ที่เขียนด้วย Rust สำหรับส่อง กรอง สรุป และวาดกราฟไฟล์ CSV ได้จบในเทอร์มินัลเดียว จุดเด่นที่สุดคือพิมพ์คำสั่งเดียวแล้ว histogram หรือ heatmap โผล่ในจอดำทันที โดยไม่ต้องเปิด Excel หรือเครื่องมือสาย data เลย

เวลามีไฟล์ CSV แปลกหน้าอยู่ตรงหน้าแล้วเราแค่อยากรู้ว่าข้อมูลข้างในหน้าตาเป็นอย่างไร คนส่วนใหญ่มักจะเปิด Excel แล้วนั่งรอโหลด หรือไม่ก็เปิด Jupyter Notebook เพื่อเขียนโค้ด Python นำเข้าแพ็กเกจ pandas และ matplotlib ทั้งที่คำถามในหัวตอนนั้นมีแค่ "มีคอลัมน์อะไรบ้าง" "มีค่าแปลกปลอมไหม" หรือ "ข้อมูลกระจายตัวอย่างไร" ซึ่งควรจะรู้คำตอบได้ภายใน 2 วินาที
xan คือเครื่องมือแบบ Command-line (CLI) ที่เขียนด้วยภาษา Rust พัฒนาขึ้นมาเพื่อแก้ปัญหานี้โดยเฉพาะ โดยตั้งฉายาตัวเองว่าเป็น "The CSV Magician" ความสามารถครอบคลุมตั้งแต่การเปิดดูตาราง กรองข้อมูล จัดเรียง รวมไฟล์ ไปจนถึงจุดเด่นที่สุดคือการ วาดกราฟวิเคราะห์ข้อมูลขึ้นมาในเทอร์มินัลได้ทันที เพียงแค่พิมพ์คำสั่งเดียว กราฟ Histogram, Scatter Plot หรือ Heatmap ก็จะปรากฏขึ้นมาบนหน้าจอจอดำโดยไม่ต้องสลับหน้าต่างไปเปิดโปรแกรมอื่นเลย
ปัญหาไม่ใช่เรื่องเขียน pandas ไม่เป็น แต่คือการเปิดโปรแกรมหนักเกินจำเป็น

จริงอยู่ที่ pandas และ matplotlib เป็นเครื่องมือมาตรฐานที่ทรงพลัง แต่มันอาจหนักเกินไปสำหรับการเปิดดูข้อมูลแบบเร็วๆ ก่อนที่เราจะได้กราฟแรก เราต้องเปิด Environment นำเข้าไลบรารี อ่านไฟล์เข้า DataFrame แล้วค่อยเขียนฟังก์ชันพล็อต กว่าจะได้เห็นภาพแรกเวลาก็ผ่านไปหลายนาที
นี่คือจุดที่ xan เข้ามาช่วยอย่างแท้จริง เอกสารของ xan ระบุไว้อย่างน่าสนใจว่า xan สามารถประมวลผลและวาดกราฟข้อมูลเสร็จ "ก่อนที่คุณจะเปิด Jupyter แล้วพิมพ์คำสั่ง import pandas กับ matplotlib เสร็จด้วยซ้ำ" เพราะไม่ต้องเตรียม Environment ใดๆ แค่รันคำสั่งตรงๆ จาก Terminal ในบรรทัดเดียว
ตัวเครื่องมือทำงานได้อย่างรวดเร็วเพราะพัฒนาด้วยภาษา Rust มีตัวประมวลผล SIMD CSV Parser ที่รองรับการทำงานแบบ Multi-threading ทำให้เปิดไฟล์ขนาดใหญ่ระดับหลายกิกะไบต์ได้สบายโดยกินแรมน้อยมาก ทั้งนี้ xan พัฒนาต่อยอดมาจากโปรเจกต์ xsv ของ BurntSushi โดยเขียนใหม่แทบทั้งหมดเพื่อรองรับงานเก็บข้อมูลเว็บและงานวิจัยสังคมศาสตร์ของสถาบัน médialab ที่ SciencesPo
เริ่มจากการดูตาราง แล้วเชื่อมโยงคำสั่งด้วย Pipeline
เมื่อติดตั้งเสร็จแล้ว คำสั่งพื้นฐานที่ควรลองใช้ในการสำรวจไฟล์ CSV ใหม่มีดังนี้:
xan headers file.csv: ดูรายชื่อคอลัมน์ทั้งหมดในไฟล์xan count file.csv: นับจำนวนแถวทั้งหมดxan view file.csv: เปิดดูตารางข้อมูลที่จัดรูปแบบและลงสีตามชนิดข้อมูลให้อัตโนมัติในเทอร์มินัล
ความเจ๋งของ xan view คือระบบจะไฮไลต์ค่าที่อาจทำให้ข้อมูลพังได้ง่าย เช่น ช่องว่างหน้าหรือหลังข้อความ การขึ้นบรรทัดใหม่แปลกๆ หรือช่องว่างเปล่า (แสดงผลเป็น <empty>) หากตารางมีความกว้างเกินหน้าจอ สามารถใส่แฟล็ก -p เพื่อเปิดโหมด Pager เลื่อนดูข้อมูลได้สะดวก
จากนั้นเราสามารถนำคำสั่งเฉพาะทางมาร้อยเรียงต่อกันผ่านท่อ (Pipe |) ได้ตามหลักการของ Unix:
xan search -s <คอลัมน์> <คำค้น> file.csv: ค้นหาและกรองข้อความเฉพาะคอลัมน์xan select <คอลัมน์> file.csv: เลือกแสดงเฉพาะคอลัมน์ที่ต้องการxan sort -s <คอลัมน์> file.csv: จัดเรียงลำดับข้อมูลxan frequency -s <คอลัมน์> file.csv: นับความถี่และการแจกแจงของค่าในคอลัมน์xan stats -s <คอลัมน์> file.csv: แสดงสถิติพื้นฐาน เช่น ค่าเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน ค่าต่ำสุด และค่าสูงสุด
เราสามารถประกอบคำสั่งเข้าด้วยกันได้ เช่น กรองข้อมูลก่อนแล้วค่อยส่งไปแสดงผลเป็นตารางด้วย xan search -s ... | xan view เมื่อจับทางการต่อท่อแบบ "หนึ่งคำสั่งทำงานหนึ่งอย่าง" ได้ งานสำรวจข้อมูลส่วนใหญ่ก็จัดการจบได้โดยไม่ต้องเขียนโค้ดสคริปต์สักบรรทัด
สั่งวาดกราฟิกขึ้นมาบนหน้าจอเทอร์มินัลทันที

ฟีเจอร์เด็ดที่ทำให้ xan โดดเด่นกว่าเครื่องมือตัวอื่น คือความสามารถในการวาดกราฟิกสำรวจข้อมูลบนหน้าจอเทอร์มินัลโดยใช้อักขระ Braille ร่วมกับรหัสสี True Color ของ ANSI ทำให้ได้กราฟที่มีความละเอียดและอ่านง่ายกว่ากราฟตัวอักษร ASCII แบบเดิมมาก โดยมีจุดประสงค์เพื่อให้เรา "ทำความเข้าใจข้อมูลได้อย่างรวดเร็ว" ก่อนเริ่มงานวิเคราะห์จริง:
xan hist: วาดกราฟแท่งแนวนอน (Histogram) เหมาะสำหรับใช้งานร่วมกับxan frequencyหรือxan binsเพื่อดูการกระจายตัวของข้อมูลxan plot <x> <y>: วาด Scatter Plot, Line Plot หรือ Time Series พร้อมรองรับ Regression Line หรือ Small Multiples เพื่อแยกกราฟย่อยxan heatmap: แสดงผลตาราง Heatmap แบบไล่เฉดสี เหมาะสำหรับดู Correlation Matrix (xan matrix corr) เพื่อวิเคราะห์ความสัมพันธ์ระหว่างคอลัมน์xan spark: วาดเส้น Sparkline ขนาดกะทัดรัดในบรรทัดเดียว เพื่อดูแนวโน้มหรือ Time Series แบบเร็วๆ
วิธีเลือกใช้คำสั่งให้เริ่มจากคำถามที่เราอยากรู้ หากต้องการดูการกระจายตัวของตัวแปรเดียวให้ใช้ hist หากต้องการดูความสัมพันธ์ของสองตัวแปรให้ใช้ plot หากต้องการเห็นภาพรวมความสัมพันธ์ของหลายคอลัมน์พร้อมกันให้ใช้ heatmap และหากต้องการดูแนวโน้มอย่างกระชับให้ใช้ spark
หากต้องการสรุปภาพรวมทั้งหมดในคำสั่งเดียว การรัน xan stats -R จะสร้างรายงานสถิติแบบครบวงจรพร้อมกราฟแท่งเล็กๆ กำกับในทุกคอลัมน์ทันที
ฟังก์ชันเสริมสำหรับการประมวลผลข้อมูลขั้นสูง
นอกจากการสำรวจข้อมูลเบื้องต้นแล้ว xan ยังมีฟังก์ชันขั้นสูงอีกมากมาย ตัวโปรแกรมมาพร้อม Expression Language ของตัวเองชื่อ Moonblade สำหรับเขียนสูตรคำนวณและตั้งเงื่อนไขกรองข้อมูลที่ซับซ้อน ซึ่งทำงานได้เร็วกว่าภาษาอย่าง Python หรือ JavaScript เพราะถูกออกแบบมาสำหรับโครงสร้างข้อมูล CSV โดยเฉพาะ
นอกจากนี้ xan ยังสามารถแปลงข้อมูลสลับไปมาระหว่าง CSV, JSON, Excel และ NumPy Array ได้อย่างง่ายดายผ่านคำสั่ง xan from และ xan to พร้อมรองรับไฟล์หลายฟอร์แมต เช่น .tsv, .ndjson รวมถึงไฟล์บีบอัดอย่าง .gz และ .zst
สำหรับการติดตั้ง สามารถทำได้ตามระบบปฏิบัติการที่ใช้งาน:
- macOS: ติดตั้งผ่าน Homebrew ด้วยคำสั่ง
brew install xan - Windows: ติดตั้งผ่าน Scoop ด้วยคำสั่ง
scoop bucket add extrasแล้วตามด้วยscoop install xan - ติดตั้งผ่าน Rust: รันคำสั่ง
cargo install xan --lockedหรือดาวน์โหลดไบนารีสำเร็จรูปขนาดประมาณ 20MB จากหน้า Releases บน GitHub ของโปรเจกต์ xan
เครื่องมือที่เร็วที่สุดไม่ใช่เครื่องมือที่คำนวณไวที่สุด แต่คือเครื่องมือที่ไม่ต้องเสียเวลาเปิดโปรแกรมอะไรก่อนเลย
จุดคุ้มค่าของ xan คือการช่วยตัดขั้นตอนการเปิดโปรแกรมขนาดใหญ่ทิ้งไป สำหรับงานสำรวจข้อมูลเบื้องต้น การได้เห็นภาพบนหน้าจอ Terminal ทันทีมีประโยชน์และประหยัดเวลากว่ามาก ส่วนงานที่ต้องการสร้างชาร์ตความละเอียดสูงสำหรับทำรายงานหรืองานโมเดลขั้นสูง การใช้ pandas ร่วมกับ Jupyter Notebook ก็ยังคงเป็นคำตอบที่เหมาะสม
xan จึงไม่ได้สร้างขึ้นมาเพื่อทดแทน Python แต่เข้ามาทดแทนนิสัย "การเปิด Excel เพียงเพื่อแค่อยากส่องดูไฟล์" ยิ่งในยุคที่เราต้องจัดการกับข้อมูล CSV ปริมาณมาก การมีเครื่องมือ CLI เร็วแรงติดเครื่องไว้ ย่อมช่วยให้ชีวิตการทำงานราบรื่นขึ้นอย่างแน่นอน
แหล่งข้อมูลอ้างอิง:
- GitHub - medialab/xan: The CSV magician จาก medialab/xan (GitHub)
- xan/docs/cookbook/dataviz.md at master · medialab/xan จาก xan cookbook dataviz (GitHub)
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
สร้าง Claude Skill แบบไม่ต้องรู้โค้ด คู่มือสร้าง Claude Skill ของคุณเองด้วยการคุยกับ Claude Code เป็นภาษาไทย
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Claude Cowork · The Business Playbook

ฉบับภาษาไทย 15 บท เรียนรู้ผ่านโปรเจกต์จำลองต่อเนื่องทั้งเล่ม ตั้งแต่ตั้งค่า Workspace จัดการไฟล์ เชื่อมแอป ตั้งระบบอัตโนมัติ จนถึงสร้าง Plugin


