분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
RAM 사용량 감소를 위한 방법
이번 대회에서 사용할 데이터는 2,800만 개의 행을 포함하고 있으며, 문자열이 포함된 열로 인해 CSV 파일의 크기가 7GB를 초과합니다.
전처리를 진행하려면 최소 70GB 이상의 RAM이 필요합니다. 충분한 RAM이 확보되어 있다면 문제가 없지만, 그렇지 않다면 데이터를 전부 불러오는 것이 불가능할 수 있습니다.
그래서, duckdb 라이브러리를 활용하여, 데이터 중 일부 데이터만 불러오는 방법을 공유합니다.
RAM 용량을 초과하지 않는 선에서 LIMIT 변수를 조정하시면 됩니다.
import duckdb import pandas as pd train_path = './data/train.csv' con = duckdb.connect() df = con.query(f"""(SELECT * FROM read_csv_auto('{train_path}') WHERE Click = 0 ORDER BY random() LIMIT 30000) UNION ALL (SELECT * FROM read_csv_auto('{train_path}') WHERE Click = 1 ORDER BY random() LIMIT 30000)""").df() con.close() df.head()
감사합니다
이 문제때문에 고민하고있었는데 !
솔루션 주셔서 감사합니다 !
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
제가 처한 문제상황에 딱 들어 맞는 해법이네요. 좋은 솔루션 알려주셔서 감사합니다!!