Rust 로 지은 대안
Polars (2026.8 기준 1.43.1) 는 Rust 로 쓰인 DataFrame 라이브러리고, Python 바인딩으로 써. In-memory 포맷은 Arrow 고, query 는 기본으로 병렬 실행되고, API 는 두 벌이야 — eager (Pandas 쓰던 손에 익숙한 쪽) 와 lazy (query 를 plan 으로 쌓아 최적화한 뒤 한 번에 실행하는 쪽, SQL 처럼).
Pandas 대신 Polars 로 손이 갈 때
- 데이터가 메모리보다 큰데 분산 시스템까지는 필요 없을 때.
pl.scan_*+ lazy 평가가 stream 으로 흘려 줘. - Transformation 이 많아서 Pandas 가 분 단위로 걸릴 때. Polars 의 병렬 실행이 그걸 보통 초 단위로 끌어내려.
- Query planner 가 필요할 때. Polars 는 최적화해서 돌리고, Pandas 는 적힌 그대로 돌려.
- Core 많은 머신에서 Pandas 가 core 를 놀릴 때.
Pandas 에 머무를 때
- Ecosystem 라이브러리 (statsmodels, sklearn, plotnine) 대부분이 Pandas DataFrame 을 그대로 받아 줄 때.
- 데이터가 메모리에 여유 있게 들어가고, 속도 차이가 체감도 안 될 만큼 작을 때.
- 탐색 중이라 chain 중간중간 print 를 찍고 싶을 때 — Polars 의 lazy plan 은
.collect()전엔 중간 결과를 안 보여 줘.