Polars

Polars는 고성능 데이터 처리를 위해 설계된 파이썬 DataFrame 라이브러리.
Rust로 작성된 핵심 엔진을 기반으로 하여 빠른 속도와 효율성을 제공한다.

주요 특징

  1. 높은 성능: Rust로 작성되어 메모리 최적화와 병렬 처리를 통해 대규모 데이터셋을 빠르게 처리한다.
  2. 직관적인 API: 사용자 친화적인 문법으로 데이터 조작 작업을 쉽게 수행할 수 있다.
  3. 지연 평가(Lazy Evaluation): 쿼리 최적화를 통해 효율적인 실행 계획을 수립한다.
  4. Apache Arrow 기반: 컬럼 기반 데이터 형식을 사용하여 벡터화된 쿼리 처리가 가능하다.
  5. GPU 지원: NVIDIA GPU를 활용한 고성능 in-memory 작업을 지원한다.

장점

  1. 속도: pandas보다 10-100배 빠른 성능을 보여준다.
  2. 메모리 효율성: pandas에 비해 2-4배 적은 RAM을 사용한다.
  3. 확장성: 대규모 데이터셋 처리에 적합하다.
  4. 병렬 처리: 여러 CPU 코어를 자동으로 활용한다.
  5. 유연한 실행 모드: 즉시 실행(eager execution)과 지연 실행(lazy execution)을 모두 지원한다.

사용 예시

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import polars as pl

# DataFrame 생성
df = pl.DataFrame({
    "A": [1, 2, 3, 4, 5],
    "B": ["a", "b", "c", "d", "e"]
})

# 데이터 필터링
filtered_df = df.filter(pl.col("A") > 2)

# 그룹화 및 집계
result = df.groupby("B").agg(pl.col("A").sum())

Polars는 대규모 데이터 처리, 고성능 분석 작업, 그리고 실시간 데이터 처리가 필요한 프로젝트에 특히 적합하다.
pandas와 유사한 문법을 제공하면서도 더 나은 성능을 제공하여, 데이터 과학자들과 분석가들 사이에서 인기를 얻고 있다.


참고 및 출처

Polars — DataFrames for the new era