pandas 분할 읽 기 빅 데이터 세트 튜 토리 얼

만약 당신 의 컴퓨터 메모리 가 비교적 작다 면 현지에서 일 을 하고 싶 은 것 은 매우 한계 가 있 습 니 다.예 를 들 어 kaggle 위의 경 기 를 가지 고 연습 을 하려 고 한다 면 대부분의 훈련 데이터 세트 는 몇 G 나 몇 십 G 이 고 자신의 작은 컴퓨터 는 전혀 달 릴 수 없다 는 것 을 알 게 될 것 입 니 다.그래,너 8000 w 샘플 있어.
아래 그림 은 2015 년 kaggle 의 이전 CTR 예상 경기 데이터 세트 입 니 다.

train 보 셨 죠?원본 데이터 세트 6 개 G,특징 공정 후 얼마나 되 나 요?그럼 400 w 를 꺼 내 서 트 레이 닝 을 하 겠 습 니 다.시간 을 절약 하고 일괄 적 으로 데 이 터 를 읽 는 기능 을 완전 하 게 소개 하기 위해 테스트 데이터 세트 를 예 로 들 어 보 여 줍 니 다.사실은 pandas 를 사용 하여 데이터 세트 를 읽 을 때 인자 chunksize 를 추가 하 는 것 입 니 다.

chunksize 크기 를 설정 하여 분할 읽 을 수도 있 고,iterator=True 를 설정 한 후 get 을 통 해 읽 을 수도 있 습 니 다.chunk 임의의 줄 선택.
물론 분할 읽 은 데 이 터 를 합 친 후 전체 데이터 세트 입 니 다.

오케이!
빅 데 이 터 를 Pandas 로 처리 하 는 3 가지 슈퍼 방법
문서 가 풍부 한 Pandas 는 현재 가장 핫 한 데이터 처리 라 이브 러 리 가 되 었 습 니 다.이 밖 에 Pandas 데이터 처리 능력 도 일류 다.
사실 당신 이 어떤 라 이브 러 리 를 사용 하 든 대량의 데 이 터 를 처리 하면 종종 새로운 도전 에 부 딪 힌 다.
데이터 처리 시 메모리(RAM)가 충분 하지 않 은 하드웨어 문제 가 종종 발생 합 니 다.기업 들 은 수백,수천 GB 의 데 이 터 를 저장 할 수 있어 야 한다.
컴퓨터 가 이 데 이 터 를 저장 할 충분 한 메모리 가 있 더 라 도 하 드 디스크 에 데 이 터 를 읽 는 데 는 시간 이 많이 걸린다.
걱정 마!Pandas 데이터 베 이 스 는 우리 가 이런 곤경 에서 벗 어 날 수 있 도록 도와 줄 것 이다.이 글 은 데이터 크기 를 줄 이 고 데이터 읽 기 속 도 를 높이 는 세 가지 방법 을 포함 하고 있다.나 는 이런 방법 으로 100 GB 가 넘 는 데 이 터 를 64GB,심지어 32GB 의 메모리 크기 로 압축 했다.
어서 이 세 가지 묘 수 를 보 세 요.
데이터 블록
csv 형식 은 저장 하기 쉽 고 변경 하기 쉬 우 며 사용자 가 읽 기 쉬 운 형식 입 니 다.pandas readcsv()방법 으로 데 이 터 를 업로드 하고 CSV 형식 으로 저장 합 니 다.CSV 파일 이 너무 커서 메모리 가 부족 한 문 제 를 만나면 어떻게 해 야 합 니까?강력 한 판다 도 구 를 사용 해 보 세 요!우 리 는 먼저 전체 서 류 를 작은 덩어리 로 나 누 었 다.여기 서 우 리 는 분 리 된 작은 덩어리 를 chunk 라 고 부른다.
하나의 chunk 가 바로 우리 데이터 의 한 그룹 이다.Chunk 의 크기 는 주로 우리 메모리 의 크기 에 따라 스스로 결정 합 니 다.
과정 은 다음 과 같다.
1.데 이 터 를 읽 습 니 다.
2.데 이 터 를 분석한다.
3.이 블록 데이터 의 분석 결 과 를 저장 합 니 다.
4.모든 chunk 분석 이 끝 날 때 까지 1-3 절 차 를 반복 합 니 다.
5.모든 chunk 를 합 친다.
우 리 는 read 를 통 해csv()방법 Chunksize 는 상기 절 차 를 완성 합 니 다.Chunksize 는 pandas 가 한 번 에 몇 줄 의 csv 파일 을 읽 을 수 있 는 지 를 말한다.이것 도 당연히 RAM 메모리 용량 의 기초 위 에 세 워 진 것 이다.
만약 에 우리 가 데이터 가 고 스 분 포 를 나 타 낼 때 우 리 는 하나의 chunk 에서 데이터 처리 와 시각 화 를 할 수 있다 고 생각한다 면 정확 도 를 높 일 수 있다.
데이터 가 약간 복잡 할 때,예 를 들 어 파 송 분 포 를 나 타 낼 때,우 리 는 한 조각 씩 선별 한 후에 모든 작은 조각 을 한데 통합 시 키 는 것 이 가장 좋다.그리고 분석 해.관련 되 지 않 은 열 을 너무 많이 삭제 하거나 값 있 는 줄 을 삭제 하 는 경우 가 많다.우 리 는 모든 chunk 에서 관련 되 지 않 은 데 이 터 를 삭제 한 후에 데 이 터 를 통합 시 킨 다음 에 데이터 분석 을 할 수 있다.
코드 는 다음 과 같 습 니 다:

데이터 삭제
때때로 우 리 는 한눈 에 분석 해 야 할 열 을 볼 수 있다.사실 보통 이름,계 정 등 열 은 분석 하지 않 습 니 다.
데 이 터 를 읽 기 전에 쓸모없는 열 을 건 너 뛰 면 많은 메모 리 를 절약 할 수 있 습 니 다.Pandas 는 읽 고 싶 은 열 을 선택 할 수 있 습 니 다.

쓸모없는 정 보 를 포함 하 는 열 을 삭제 하면 종종 많은 메모 리 를 절약 할 수 있다.
또한 부족 한 줄 이나'NA'가 포 함 된 줄 을 삭제 할 수 있 습 니 다.dropna()방법 으로 실현 가능:

dropna()에 전달 할 수 있 는 매우 유용 한 인자 가 몇 개 있 습 니 다.
how:옵션:"any"(이 줄 의 임의의 열 에"NA"가 나타 나 면 이 줄 을 삭제 합 니 다)
"all"(한 줄 의 모든 데이터 가"NA"일 때 만 삭제)
thresh:한 줄 에 최대 몇 개의 NA 가 포함 되 어 있 는 지 설정 할 때 만 삭제
subset:어떤 하위 집합 을 선택 하여 NA 찾기
이 매개 변 수 를 통 해,특히 thresh 와 subset 두 개의 매개 변 수 를 통 해 특정한 줄 이 삭제 되 었 는 지 여 부 를 결정 할 수 있 습 니 다.
Pandas 는 정 보 를 읽 을 때 열 을 삭제 할 수 없습니다.그러나 우 리 는 모든 chunk 에서 상술 한 조작 을 할 수 있다.
열 에 다른 데이터 형식 설정
데이터 과학자 의 초보 자 들 은 종종 데이터 유형 에 대해 너무 많이 고려 하지 않 는 다.처리 데이터 가 갈수 록 많아 지면 데이터 형식 을 고려 할 필요 가 있다.
업계 에서 자주 사용 하 는 해결 방법 은 데이터 파일 에서 데 이 터 를 읽 은 다음 열 에 데이터 형식 을 설정 하 는 것 이다.그러나 데이터 양 이 매우 많 을 때 우 리 는 메모리 공간 이 부족 할 까 봐 걱정한다.
CSV 파일 에서 예 를 들 어 특정한 열 은 부동 소수점 이 고 더 많은 저장 공간 을 차지 합 니 다.예 를 들 어 우리 가 데 이 터 를 다운로드 하여 주식 정 보 를 예측 할 때 가격 은 32 비트 부동 소수점 형식 으로 저장 된다.
그런데 우 리 는 정말 32 비트 부동 소수점 디지털 이 필요 합 니까?대부분의 경우 주식 가격 은 소수점 이후 두 개의 데 이 터 를 보류 하고 거래 한다.우리 가 더 정확 한 데 이 터 를 보고 싶다 고 해도 16 비트 부동 소수점 은 충분 하 다.
저 희 는 데 이 터 를 읽 을 때 데이터 형식 을 설정 합 니 다.데이터 원본 형식 을 유지 하 는 것 이 아 닙 니 다.그러면 일부 메모리 가 낭비 된다.
read 를 통 해csv()에 dtype 인 자 를 설정 하여 데이터 형식 설정 을 완성 합 니 다.사전 형식 도 설정 할 수 있 습 니 다.이 열 을 키 로 설정 하고 특정한 열 을 사전 의 값 으로 설정 할 수 있 습 니 다.
아래 의 pandas 예 를 보십시오.

문장 은 여기까지 끝났다!상술 한 세 가지 방법 이 당신 을 도와 시간 과 메모 리 를 절약 할 수 있 기 를 바 랍 니 다.
이상 의 pandas 분할 읽 기 빅 데이터 세트 튜 토리 얼 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기