ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pandas] 메모리 줄이기 read_csv, chunk, multiprocessing
    💫 Computer Science/Python & AI Framework 2021. 7. 1. 00:45

     

     

    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

    댓글

Designed by Tistory.