PyPolars로 Pandas를 3 배 더 빠르게 만들기

소스 노드 : 1854103

PyPolars로 Pandas를 3 배 더 빠르게 만들기

PyPolars 라이브러리를 사용하여 Pandas 워크 플로의 속도를 높이는 방법을 알아 봅니다.


By 사티 암 쿠마르, 기계 학습 애호가 및 프로그래머



님이 촬영 한 사진 팀 고우 on Unsplash

 

Pandas는 데이터 과학자들 사이에서 데이터를 다루는 가장 중요한 Python 패키지 중 하나입니다. Pandas 라이브러리는 수많은 내장 함수와 함께 제공되므로 주로 데이터 탐색 및 시각화에 사용됩니다. Pandas는 CPU의 모든 코어에 프로세스를 확장하거나 배포하지 않기 때문에 대용량 데이터 세트를 처리하지 못합니다.

계산 속도를 높이기 위해 CPU의 모든 코어를 활용하고 워크 플로 속도를 높일 수 있습니다. CPU의 여러 코어에서 계산을 병렬화하는 Dask, Vaex, Modin, Pandarallel, PyPolars 등 다양한 오픈 소스 라이브러리가 있습니다. 이 기사에서는 PyPolars 라이브러리의 구현 및 사용에 대해 논의하고 그 성능을 Pandas 라이브러리와 비교합니다.

PyPolars는 무엇입니까?

 
PyPolars는 Pandas와 유사한 오픈 소스 Python 데이터 프레임 라이브러리입니다. PyPolars는 CPU의 사용 가능한 모든 코어를 활용하므로 Pandas보다 빠르게 계산을 수행합니다. PyPolars에는 Pandas와 유사한 API가 있습니다. Python 래퍼로 rust로 작성되었습니다.


이상적으로 PyPolars는 데이터가 Pandas에 비해 너무 크고 Spark에 비해 너무 작을 때 사용됩니다.


PyPolars는 어떻게 작동합니까?

 
PyPolars 라이브러리에는 두 개의 API가 있습니다. 하나는 Eager API이고 다른 하나는 Lazy API입니다. Eager API는 Pandas의 API와 매우 유사하며 실행이 완료된 직후 Pandas와 유사한 결과가 생성됩니다. Lazy API는 쿼리 실행시지도 또는 계획이 형성되는 Spark와 매우 유사합니다. 그런 다음 실행은 CPU의 모든 코어에서 병렬로 실행됩니다.



(저자별 이미지), PyPolars API

 

PyPolars는 기본적으로 Polars 라이브러리에 대한 파이썬 바인딩입니다. PyPolars 라이브러리의 가장 좋은 부분은 Pandas와 API가 유사하므로 개발자가 더 쉽게 사용할 수 있습니다.

설치:

 
PyPolars는 다음 명령을 사용하여 PyPl에서 설치할 수 있습니다.

pip install py-polars


다음을 사용하여 라이브러리를 가져옵니다.

import pypolars as pl


벤치 마크 시간 제약 :


데모를 위해 6.4 만 개의 인스턴스가있는 대용량 데이터 세트 (~ 25Gb)를 사용했습니다.




(저자별 이미지), Pandas 및 Py-Polars 기본 작업에 대한 벤치 마크 시간 번호

 

Pandas 및 PyPolars 라이브러리를 사용하는 일부 기본 작업에 대한 위의 벤치 마크 시간 수치의 경우 PyPolars가 Pandas보다 거의 2 ~ 3 배 빠르다는 것을 알 수 있습니다.

이제 PyPolars에는 Pandas와 매우 유사한 API가 있지만 여전히 Pandas의 모든 기능을 포함하지는 않습니다. 예를 들어, 우리는 .describe() 대신 PyPolars의 함수를 사용할 수 있습니다. df_pypolars.to_pandas().describe()

용법:

 

(작성자 별 코드)

결론 :

 
이 기사에서는 구현, 사용 및 일부 기본 작업에 대한 벤치 마크 시간 수치를 Pandas와 비교하는 등 PyPolars 라이브러리에 대한 간단한 소개를 다루었습니다. PyPolars는 Pandas와 매우 유사하게 작동하며 PyPolars는 지원되는 메모리가 변경 불가능하기 때문에 메모리 효율적인 라이브러리입니다.

하나를 통해 갈 수 있습니다 선적 서류 비치 도서관에 대한 자세한 이해를 얻으십시오. Pandas 작업을 병렬화하고 프로세스 속도를 높일 수있는 다양한 다른 오픈 소스 라이브러리가 있습니다. 읽기 아래 기사 이러한 라이브러리 4 개를 알고 싶습니다.

기존 Pandas 생태계를 병렬화 할 수있는 4 개의 라이브러리
이러한 프레임 워크를 사용하여 병렬 처리를 통해 Python 워크로드 배포

 
참조 :

[1] Polars 문서 및 GitHub 저장소 : https://github.com/ritchie46/polars

 
읽어 주셔서 감사합니다

 
바이오 : 사티 암 쿠마르 머신 러닝 애호가이자 프로그래머입니다. 사티 암 쓰기 데이터 과학에 대해 알고 있으며 AI의 최고 작가입니다. 그는 자신의 기술력과 능력을 활용할 수있는 기회를 제공하는 조직에서 도전적인 경력을 찾고 있습니다.

실물. 허가를 받아 다시 게시했습니다.

관련 :

출처 : https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

타임 스탬프 :

더보기 너 겟츠