Polars 라이브러리 이해하기


Polars 라이브러리 는 Rust 프로그래밍 언어로 작성된 고성능 데이터 조작 및 분석을 위한 라이브러리입니다. Pandas와 유사한 기능을 제공하지만, Rust의 속도와 안정성을 활용하여 대용량 데이터에 대한 작업을 빠르고 효율적으로 수행할 수 있습니다.

Polars는 다양한 데이터 형식을 처리할 수 있으며, 데이터 프레임을 사용하여 데이터를 조작하고 변환할 수 있습니다. 이를 통해 데이터 필터링, 그룹화, 집계, 결합 등의 작업을 수행할 수 있습니다. Polars는 병렬 처리 및 메모리 최적화를 지원하여 대용량 데이터셋에 대한 작업을 빠르고 효율적으로 수행할 수 있습니다.

Polars는 Rust로 작성되었지만, Python 사용자들도 Polars의 높은 성능을 활용할 수 있도록 Python 바인딩을 제공합니다. 이는 Python 개발자들이 익숙한 환경에서 대규모 데이터셋을 빠르게 처리할 수 있게 해줍니다.

이번 포스팅에서는 Polars 라이브러리에 대해서 알아보겠습니다.

Polars – 엄청나게 빠른 DataFrame 라이브러리

Polars는 구조화된 데이터를 조작하기 위한 매우 빠른 데이터 프레임 라이브러리입니다. 핵심은 Rust로 작성되었으며 Python, R 및 NodeJS에서 사용할 수 있습니다. Polars의 주요 특징은 아래와 같습니다.


Polars의 주요 특징

  • 빠른 처리 속도: Rust로 처음부터 작성되었으며, 외부 종속성 없이 머신에 가깝게 설계되었습니다.

  • I/O: 모든 일반 데이터 스토리지 계층(로컬, 클라우드 스토리지 및 데이터베이스)에 대한 최고 수준의 지원이 가능합니다.

  • 직관적인 API: 의도한 대로 쿼리를 작성합니다. Polars는 내부적으로 쿼리 최적화 프로그램을 사용하여 실행하는 가장 효율적인 방법을 결정합니다.

  • Out of Core: 스트리밍 API를 사용하면 모든 데이터가 동시에 메모리에 있을 필요 없이 결과를 처리할 수 있습니다.

  • 병렬: 추가 구성 없이 사용 가능한 CPU 코어 간에 작업 부하를 나누어 시스템의 성능을 활용합니다.

  • 벡터화된 쿼리 엔진: 열 형식 데이터 형식인 Apache Arrow를 사용하여 쿼리를 벡터화된 방식으로 처리하고 SIMD를 사용하여 CPU 사용량을 최적화합니다.

데이터 프레임

데이터 프레임은 데이터 조작 및 분석에 유용한 2차원 데이터 구조입니다. 행과 열에 레이블이 지정된 축을 사용하면 각 열에 다양한 데이터 유형이 포함될 수 있으므로 병합 및 집계와 같은 복잡한 데이터 작업이 훨씬 쉬워집니다. 데이터를 저장하고 작업하는 유연성과 직관적인 방식으로 인해 데이터 프레임은 현대 데이터 분석 및 엔지니어링에서 점점 인기를 얻고 있습니다.



Polars의 철학

Polars의 목표는 아래와 같은 매우 빠른 데이터프레임 라이브러리를 제공하는 것입니다.

  • 컴퓨터에서 사용 가능한 모든 코어 활용
  • 불필요한 작업/메모리 할당을 줄이기 위한 쿼리 최적화
  • 사용 가능한 RAM보다 훨씬 큰 데이터 세트 처리
  • 일관되고 예측 가능한 API
  • 엄격한 스키마 준수(쿼리를 실행하기 전에 데이터 유형을 알아야 함)
  • Polars는 Rust로 작성되어 C/C++ 성능을 제공하고 쿼리 엔진에서 성능에 중요한 부분을 완전히 제어 가능


Polars 간단한 사용 예시

import polars as pl

q = (
    pl.scan_csv("D:/iris.csv")
    .filter(pl.col("sepal_length") > 5)
    .group_by("species")
    .agg(pl.all().sum())
)

irisData = q.collect()

보다 더 다양한 소개는 다음 포스팅에서 확인할 수 있습니다.


마치며…

Python 유저들에게 잘 알려진 데이터 분석 라이브러는 Pandas입니다. 저 또한 데이터 분석에는 Pandas가 익숙합니다. 최근 Polars 라이브러리에 대해서 알게 됐고, Pandas보다 뛰어난 장점이 많다는 것을 알게 되었습니다. 향후 여러 포스팅에 걸쳐서 Polars 라이브러리에 대해서 알아보는 시간을 갖겠습니다.

우선, Polars 라이브러리 시작하기 를 확인하세요.

감사합니다!!


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다