수백만 행이 초 단위로 데이터 프레임을 처리하는 방법
그러나 당신이 알아야 할 데이터 분석을위한 또 다른 파이썬 라이브러리 – 그리고 아니, 나는 불꽃이나 마시에 대해 이야기하지 않습니다.
비파이썬의 IG 데이터 분석은 르네상스를 갖고 있습니다.그것은 모두이 기사에서 제시하고있는 도구 뒤에있는 빌딩 블록 중 하나 인 숫자 인 NUMPY로 시작되었습니다.
2006 년에 큰 데이터는 특히 Hadoop의 출시로 천천히 견인력을 얻은 주제였습니다.팬더는 데이터 프레임으로 곧 뒤를이었습니다.2014 년은 큰 자료가 주류가되었을 때의 해였으며, Apache Spark는 그 해에 해당되었습니다.2018 년에는 파이썬의 데이터 분석을 위해 Dask와 다른 라이브러리가있었습니다.
매월 나는 지느러미디내가 배우기를 열망하는 새로운 데이터 분석 도구.장기적으로 많은 시간을 절약 할 수 있으므로 시간 또는 2 시간을 보낼 수있는 가치있는 투자입니다.또한 최신 기술을 계속 연락하는 것도 중요합니다.
이 기사가 마스크에 관한 것이라고 기대하는 동안 당신은 잘못되었습니다.나는 당신이 알아야 할 데이터 분석을 위해 또 다른 파이썬 라이브러리를 발견했습니다.
파이썬처럼 SQL에 능숙 해지는 것이 똑같이 중요합니다.당신이 그것에 익숙하지 않은 경우, 당신은 여분의 돈이 있고,이 과정을 확인하십시오 :Master SQL, 빅 데이터 분석을위한 핵심 언어…에
파이썬의 큰 데이터 분석은 르네상스를 가지고 있습니다
다른 데이터 분석 도구에 대해 내 기사를 놓친 경우 :
VAEX를 만나십시오
VAEX는 게으른 핵심 데이터 프레임 (PandaS와 유사)을위한 고성능 Python 라이브러리로 큰 표 형식 데이터 집합을 시각화하고 탐색합니다.
초당 10 억 줄 이상의 행에 대한 기본 통계를 계산할 수 있습니다.큰 데이터의 대화식 탐색을 허용하는 여러 시각화를 지원합니다.
VAEX와 DASK의 차이점은 무엇입니까?
VAEX는 DASK와 유사하지 않지만 상단 팬더 데이터 프레임을 기반으로하는 DASK 데이터 프레임과 유사합니다.이것은 그 마술사를 의미합니다팬더 문제를 상속받습니다, 높은 메모리 사용량과 같습니다.이것은 VAEX의 경우가 아닙니다.
VAEX는 메인 메모리가 적은 시스템에서 더 큰 데이터 프레임을 처리 할 수 있도록 데이터 프레임을 복사하지 않습니다.
VAEX와 DASK는 모두 게으른 가공을 사용합니다.유일한 차이점은 VAEX가 필요할 때 필드를 계산하는 것입니다. Compute 함수를 명시 적으로 사용해야하는 Dask.
데이터는 HDF5 또는 Apache 화살표 형식이어야합니다. VAEX를 최대한 활용해야합니다.
VAEX를 설치하는 방법?
VAEX를 설치하려면 다른 Python 패키지를 설치하는 것만 큼 간단합니다.
PIP 설치 VAEX
Let’s take Vaex to a test drive
큰 데이터 파일을 만들려면 100 만 개의 행과 1000 개의 열이있는 팬더 데이터 프레임을 만들어 봅시다.
VAEX 가져 오기
PANDAS를 PD로 가져 오십시오
numpy를 np로 가져 오기n_rows = 1000000.
n_cols = 1000.
df = pd.dataFrame (np.random.randint (0, 100, size = (n_rows, n_cols)), columns = [ 'col % d'% i 범위 (n_cols)]df.head ()

이 데이터 프레임은 얼마나 많은 메모리를 사용합니까?
df.info (memory_usage = '깊이')

우리가 vaex로 나중에 읽을 수 있도록 디스크에 저장합시다.
file_path = 'big_file.csv'
df.to_csv (file_path, index = false)
우리는 속도가 팬더와 유사하므로 전체 CSV를 VAEX로 직접 읽는 것으로 많은 것을 얻지 못할 것입니다.둘 다 내 랩톱에서 약 85 초를 필요로합니다.
우리는 CSV를 HDF5 (계층 적 데이터 형식 버전 5)로 변환하여 VAEX의 이점을 확인해야합니다.VAEX에는 소규모 덩어리를 변환하여 주 메모리보다 큰 파일을 지원하는 변환 기능이 있습니다.
Pandas로 큰 파일을 열 수없는 경우 메모리 제약 조건으로 인해 HDF5로 덮어 VAEX로 처리 할 수 있습니다.
dv = vaex.from_csv (file_path, convert = true, chunk_size = 5_000_000)
이 함수는 HDF5 파일을 만들고 디스크에 지속됩니다.
DV의 데이터 유형은 무엇입니까?
유형 (DV)# 출력
vaex.hdf5.dataset.hdf5MemoryMapped.
이제 VAEX로 7.5GB 데이터 집합을 읽으려고합니다. 이미 DV 변수에 이미 있으므로 다시 읽을 필요가 없습니다.이것은 단지 속도를 테스트하는 것입니다.
dv = vaex.open ( 'big_file.csv.hdf5')
VAEX는 위의 명령을 실행하기 위해 1 초 미만이 필요했습니다.그러나 지연 로딩 때문에 VAEX가 실제로 파일을 읽지 않았습니다.
COL1의 합계를 계산하여 읽을 것을 강요합시다.
suma = dv.col1.sum ()
수마# 출력
# 배열 (49486599)
나는 이것을 정말로 놀랐다.VAEX는 합계를 계산하기 위해 1 초 미만이 필요했습니다.어떻게 가능합니까?
이러한 데이터를 열면 디스크의 파일 크기에 관계없이 순간적입니다.VaEx는 메모리에서 읽는 대신 데이터를 메모리 맵핑합니다.이것은 사용 가능한 RAM보다 큰 대형 데이터 세트를 사용하는 최적의 방법입니다.
플로팅
데이터를 플로팅 할 때 VAEX도 빠릅니다.특수 플로팅 기능 PLOT1D, PLOT2D 및 PLOT2D_CONTOUR가 있습니다.
dv.plot1d (dv.col2, figsize = (14, 7))

Virtual columns
VAEX는 새 열을 추가 할 때 가상 열을 만듭니다.
dv [ 'col1_plus_col2'] = dv.col1 + dv.col2
DV [ 'COL1_PLUS_COL2']]

Efficient filtering
VAEX는 훨씬 더 많은 메모리 효율 인 데이터를 필터링 할 때 데이터 프레임 복사본을 만들지 않습니다.
DVV = DV [dv.col1 & gt;90]
Aggregations
집계는 팬더보다 약간 다르게 작동하지만 더 중요한 것은 뻔뻔스럽게 빨리됩니다.
col1 ≥ 50 이진 가상 가상 열을 추가합시다.
DV [ 'COL1_50'] = DV.COL1 & gt; = 50
VAEX는 그룹별로 단일 명령으로 집계를 결합합니다.아래 명령은 “COL1_50″열에 의해 데이터를 그룹화하고 COL3 열의 합계를 계산합니다.
dv_group = dv.groupby (dv [ 'col1_50'], agg = vaex.agg.sum (dv [ 'col3']))
dv_group.

Joins
VAEX는 메모리 복사본을 저장하지 않고 데이터를 조인하여 주 메모리를 저장합니다.Pandas 사용자는 조인 기능에 익숙합니다.
dv_join = dv.join (dv_group, on = 'col1_50')
Conclusion
결국, 당신은 다음과 같이 묻습니다 : 우리는 팬더에서 VAEX로 전환해야합니까?대답은 큰 아니오입니다.
Pandas는 여전히 파이썬에서 데이터 분석을위한 최고의 도구입니다.가장 일반적인 데이터 분석 작업을위한 잘 지원되는 기능이 있습니다.
더 큰 파일에 관해서, 팬더는 가장 빠른 도구가 아닐 수도 있습니다.이것은 VAEX가 뛰어 내리는 훌륭한 장소입니다.
VAEX는 데이터 분석 도구 상자에 추가 해야하는 도구입니다.
팬더가 너무 느리거나 간단히 충돌하는 분석 작업에서 작업 할 때 VAEX를 도구 상자에서 가져오고 가장 중요한 항목을 필터링하고 팬더로 분석을 계속하십시오.
가기 전에
-SQL에서 날짜 시리즈를 만드는 방법[조]-데이터 과학자 및 amp에 대한 무료 기술 테스트;기계 학습 엔지니어-사이버 보안 (60 % OFF)에서 경력을 향상시킵니다 [코스]-Microsoft Azure [코스]를 사용하는 클라우드 개발자가 되십시오.-빅 데이터 분석의 핵심 언어 인 마스터 SQL [코스]
위의 링크 중 일부는 제휴 링크이며 구입을 위해 구입을 위해 그들을 통과하면위원회를 벌 수 있습니다.나는 당신의 구매로부터받는위원회로 인해 품질로 인해 과정을 링크한다는 것을 명심하십시오.
나를 따라 가라트위터, 내가 정기적으로 여기서트위터데이터 과학 및 기계 학습에 대해서.