<#ffffff,#1c1d1f> |
[clearfix]
1. 개요
#!syntax python
import polars as pl
Polars (폴라스)는 정형 데이터 (테이블 데이터)를 전처리하는 Python 라이브러리다.[1] #
2. 역사
2020년, 리치 빈크 (Ritchie Vink)에 의해 pola.rs 프로젝트의 일환으로 개발되었다. 프로젝트명에서도 알 수 있듯이 Rust 기반으로 개발되어 메모리 누수나 보안에 내구성을 지니고 멀티코어 지원을 추가하였다. 또한, Apache Arrow 메모리 모델을 채택하여 데이터 프레임 (Data Frame)을 열 기반 (Columnar) 자료구조로 구현했다.3. 특성
- Apache Arrow 기반의 시계열 (Series), 데이터 프레임 (Data Frame) 자료형 구현
- 대량 처리 (Batch Processing)를 위한 레이지 프레임 (Lazy Frame) 자료형 구현[2]
- SQL 쿼리와 유사한 필터링 문법
- 인덱싱 최소화
- 다양한 벡터 연산 도입
- 멀티 코어 지원
- CUDA 지원 (GPU 전용 빌드 설치 필요)
Polars의 주요 코드는 Rust로 작성되었다. CPU 연산만으로도 Pandas보다 20배 빠른 연산속도를 보여준다.
4. 여담
- 2020년에 출시된 이후로 해외에서는 급속도로 Pandas로 짜여진 Python 코드들이 Polars로 대체되었고 국내에서도 우아한형제들 (배달의민족) 등을 포함하여 주요 대기업과 유니콘 기업들이 Pandas가 쓰인 레거시 코드를 Polars로 재작성하고 있다.
- 빅데이터 로드시 원본 파일의 행이나 열이 지나치게 많은 경우 결과물 내용이 짤리는 현상이 있어 이 과정에 한해서는 Pandas를 쓰는게 좋다. 그 다음 과정부터 Polars 데이터프레임으로 변환해서 사용할 수도 있다.