데이터 분석 작업을 수행하는 동안 판다를 사용한 경험이 있을 텐데요. 오랫동안 데이터 분석 분야에서 가장 널리 사용되어 온 라이브러리입니다. 반면에 Polars는 높은 성능과 메모리 효율성을 자랑하는 비교적 새로운 라이브러리입니다. 그렇다면 어느 쪽이 더 좋을까요?

여기에서는 다양한 일반적인 데이터 조작 작업에서 Pandas와 Polars의 성능을 비교한 결과를 볼 수 있습니다.

성능 측정: 메트릭 및 벤치마크 데이터 세트

이 비교에서는 Kaggle 의 블랙 프라이데이 세일 데이터 세트를 조작하는 Pandas 및 Polars 라이브러리의 기능을 고려합니다. 이 데이터 세트에는 550,068개의 데이터 행이 포함되어 있습니다. 여기에는 고객 인구 통계, 구매 내역 및 제품 세부 정보에 대한 정보가 포함됩니다.

공정한 성능 측정을 위해 비교에서는 각 작업에 대한 표준 성능 지표로 실행 시간을 사용합니다. 각 비교 작업의 코드를 실행하는 플랫폼은 Google Colab입니다.

판다와 폴라 라이브러리를 비교하는 전체 소스 코드는 GitHub 리포지토리에서 확인할 수 있습니다.

CSV 파일에서 데이터 읽기

이 작업은 각 라이브러리가 블랙 프라이데이 세일 데이터 세트에서 데이터를 읽는 데 걸리는 시간을 비교합니다. 데이터 집합은 CSV 형식입니다. Pandas와 Polars는 이 작업에 대해 유사한 기능을 제공합니다.

블랙 프라이데이 세일 데이터 집합에서 데이터를 읽는 데 걸리는 시간은 Pandas가 Polars보다 두 배 더 오래 걸립니다.

열 선택

이 작업은 각 라이브러리가 데이터 집합에서 열을 선택하는 데 걸리는 시간을 측정합니다. 여기에는 User_ID 및 Purchase 열을 선택하는 작업이 포함됩니다.

폴라스는 판다에 비해 데이터 집합에서 열을 선택하는 데 걸리는 시간이 훨씬 짧습니다.

행 필터링

이 작업은 데이터 집합에서 Gender 열이 F인 행을 필터링할 때 각 라이브러리의 성능을 비교합니다.

폴라가 행을 필터링하는 데 걸리는 시간은 판다에 비해 매우 짧습니다.

데이터 그룹화 및 집계

이 작업에는 하나 이상의 열을 기준으로 데이터를 그룹화하는 작업이 포함됩니다. 그런 다음 그룹에 대해 몇 가지 집계 함수를 수행합니다. 각 라이브러리가 성별 열을 기준으로 데이터를 그룹화하고 각 그룹에 대한 평균 구매 금액을 계산하는 데 걸리는 시간을 측정합니다.

다시, 폴라가 판다를 앞섭니다. 하지만 행을 필터링할 때만큼 마진이 크지 않습니다.

이 글도 확인해 보세요:  JavaScript를 사용하여 이미지에 X 및 Y 좌표를 오버레이하는 방법

데이터에 함수 적용

이 작업에는 하나 이상의 열에 함수를 적용하는 작업이 포함됩니다. 각 라이브러리가 구매 열에 2를 곱하는 데 걸리는 시간을 측정합니다.

Polars 막대가 거의 보이지 않습니다. 폴라가 다시 한번 팬더를 앞섰습니다.

데이터 병합

이 작업에는 하나 이상의 공통 열이 존재한다는 것을 기반으로 두 개 이상의 데이터 프레임을 병합하는 작업이 포함됩니다. 이 작업은 각 라이브러리가 두 개의 개별 데이터 프레임에서 User_ID 및 Purchase 열을 병합하는 데 걸리는 시간을 측정합니다.

두 라이브러리 모두 이 작업을 완료하는 데 어느 정도 시간이 걸립니다. 그러나 Polars는 데이터를 병합하는 데 Pandas의 거의 절반에 가까운 시간이 걸립니다.

Polars가 Pandas를 능가하는 이유는 무엇인가요?

위의 모든 데이터 조작 작업에서 Polars가 Pandas보다 성능이 뛰어납니다. Polars가 실행 시간에서 판다를 능가하는 데에는 몇 가지 이유가 있습니다.

⭐ 메모리 최적화: Polars는 메모리 사용을 최적화하는 시스템 프로그래밍 언어인 Rust를 사용합니다. 이를 통해 Polars는 메모리 할당 및 할당 해제에 소요되는 시간을 최소화할 수 있습니다. 따라서 실행 시간이 빨라집니다.

⭐ SIMD(단일 명령어 다중 데이터) 연산: Polars는 SIMD 연산을 사용하여 데이터에 대한 연산을 수행합니다. 즉, 단일 명령어를 사용하여 여러 데이터 요소에 대해 동일한 연산을 동시에 수행할 수 있습니다. 따라서 단일 스레드 접근 방식을 사용하는 판다보다 훨씬 빠르게 연산을 수행할 수 있습니다.

⭐ 지연 평가: Polars는 지연 평가를 사용하여 작업이 필요할 때까지 작업 실행을 지연시킵니다. 이렇게 하면 Polars가 불필요한 작업에 소비하는 시간이 줄어들고 성능이 향상됩니다.

데이터 과학 기술 확장

데이터 과학에 도움이 되는 Python 라이브러리가 많이 있습니다. 판다와 폴라는 극히 일부에 불과합니다. 프로그램의 성능을 향상시키려면 더 많은 데이터 과학 라이브러리에 익숙해져야 합니다. 이렇게 하면 사용 사례에 가장 적합한 라이브러리를 비교하고 선택하는 데 도움이 됩니다.

By 이지원

상상력이 풍부한 웹 디자이너이자 안드로이드 앱 마니아인 이지원님은 예술적 감각과 기술적 노하우가 독특하게 조화를 이루고 있습니다. 모바일 기술의 방대한 잠재력을 끊임없이 탐구하고, 최적화된 사용자 중심 경험을 제공하기 위해 최선을 다하고 있습니다. 창의적인 비전과 뛰어난 디자인 역량을 바탕으로 All Things N의 잠재 독자가 공감할 수 있는 매력적인 콘텐츠를 제작합니다.