Rust 기반 대안
Polars (2026.4 기준 1.39.3) 는 Rust 로 쓰인 DataFrame 라이브러리, Python 바인딩 있음. Arrow 를 in-memory 포맷으로 사용, default 로 병렬 query 실행, eager API (Pandas 사용자 친숙) 와 lazy API (query 가 plan 으로 빌드되고 최적화돼서 한 번에 실행 — SQL 처럼) 둘 다 있어.
Pandas 대신 Polars 잡을 때
- 데이터가 메모리보다 큰데 분산 시스템 필요 없을 때.
pl.scan_*+ lazy eval 이 stream. - 많은 transformation 하는 중 Pandas 가 분 단위 걸릴 때. Polars 의 병렬 실행이 보통 그걸 초로 줄임.
- Query planner 원할 때. Polars 는 최적화하고 Pandas 는 본인이 쓴 그대로 실행.
- Many-core 머신에서 Pandas 가 core 놀릴 때.
Pandas 에 머무를 때
- 많은 ecosystem 라이브러리 (statsmodels, sklearn, plotnine) 가 Pandas DataFrame native 받음.
- 데이터가 메모리에 쾌적하고 속도 향상 안 중요할 정도로 작음.
- 탐색 작업 중 chain 중간에 print 필요 — Polars 의 lazy plan 은
.collect()없이 중간 결과 안 줌.