10P by xguru 11일전 | ★ favorite | 댓글 1개
  • 터미널에서 대용량 CSV 파일을 빠르고 효율적으로 처리할 수 있는 Rust 기반 도구
  • 다양한 데이터 조작 기능 외에도 표시, 시각화, 분석, 웹 스크래핑, 텍스트 처리, 네트워크 분석까지 지원
  • 내부적으로는 고성능을 위해 멀티스레딩, 표현식 언어, 병렬 처리를 활용
  • 초대형 CSV (기가바이트급) 파일도 문제없이 처리 가능
  • Python이나 Lua보다 훨씬 빠른 전용 표현식 언어 제공
  • 단일 명령어 체이닝으로 복잡한 데이터 흐름 구현 가능
  • 간단한 통계부터 히트맵, 히스토그램 등 기초 시각화까지 가능
  • 사회과학 연구자 및 웹 데이터 분석을 위한 고급 기능 포함
  • Linux, macOS, Windows 모두 지원
  • .tsv, .psv, .ssv, .gz 등 다양한 포맷 자동 인식

핵심 명령어 예

  • 탐색

    • xan headers: 컬럼 목록 출력
    • xan view: 터미널에서 테이블 형태로 보기
    • xan flatten: 한 행의 모든 값을 펼쳐 보기
    • 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

어떻게 응용 할 수 있을까 했는데, sort나 drop만 사용해도 의미가 있겠습니다.