새소식

AI 개발

[Pandas] 메모리 줄이기 read_csv, chunk, multiprocessing

  • -

 

 

pandas는 디스크말고 RAM에 데이터를 적재하는데, 이때 Contiguous Memory Allocation(연속 메모리 할당) 방식을 사용한다.

 

  • 디스크 적재시(Reading from SSDs) : ~16000 nanoseconds
  • 램 적재시(Reading from RAM) : ~100 nanoseconds

 

**Contiguous Memory Allocation(consecutive blocks are assigned) : logical address가 연속적이면 physical address도 연속적으로 배치된다.

**NonContiguous Memory Allocation(separate blocks at different locations)

 

 

 

멀티프로세싱과 GPU를 사용하기 전에, pd.read_csv()를 효과적으로 하는 방법 먼저 고려해보자.(근데 큰 효과는 없는듯..)

 

 

 

사용한 데이터 : https://www.kaggle.com/c/bluebook-for-bulldozers/overview

 

Blue Book for Bulldozers

Predict the auction sale price for a piece of heavy equipment to create a "blue book" for bulldozers.

www.kaggle.com

 

 

 

 

 

Summary

1. read_csv() 인자에 usecols 사용하기

2. 수치형(Numerical) 데이터에 올바른 dtype 사용하기

3. missing value, NANs를 로딩할 때 치환하는 converters 사용하기

4. 범주형(Categorical) 데이터에 올바른 dtype 사용하기

5. Sparse Series 사용하기

6. nrows, skip rows 사용하기

7. Chunks 사용하기

8. Multiprocessing 사용하기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

References

 

https://towardsdatascience.com/️-load-the-same-csv-file-10x-times-faster-and-with-10x-less-memory-️-e93b485086c7

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.