엑셀로는 안 열리는 200만 행 대용량 데이터, 파이썬으로 1초 만에 요약하기
회사에서 수년간 누적된 판매 데이터나 웹사이트 로그 데이터를 다운로드해 본 적 있으신가요? 파일 용량이 500MB를 넘어가고, 엑셀로 더블클릭해서 열었더니 화면 상단에 "데이터가 너무 많아 완전히 로드되지 않았습니다"라는 무시무시한 경고창이 뜹니다. 스크롤을 맨 밑으로 내려보면 정확히 1,048,576행에서 데이터가 싹둑 잘려 있습니다. 엑셀이라는 프로그램이 태생적으로 담을 수 있는 최대 한계치가 약 104만 행이기 때문입니다. 그 이상의 데이터는 엑셀로는 아예 열어볼 수조차 없습니다. 결국 데이터를 월별로 쪼개서 다운받는 등 불필요한 노가다를 해야 하죠. 하지만 파이썬에게 데이터의 한계란 '컴퓨터 메모리(RAM)의 한계'일 뿐입니다. 오늘은 엑셀은 쳐다보지도 못하는 200만 행, 1,000만 행의 대용량 데이터를 파이썬으로 가볍게 다루는 심화 기술을 알아보겠습니다. 1. 대용량 데이터의 표준, CSV 파일 불러오기 보통 100만 행이 넘어가는 대용량 데이터는 .xlsx 포맷이 아니라 .csv 포맷으로 저장되어 있습니다. CSV는 서식 없이 콤마(,)로만 데이터를 구분한 순수 텍스트 파일이라 용량이 훨씬 가볍기 때문입니다. 판다스에서 CSV 파일을 불러오는 방법은 엑셀과 거의 똑같습니다. read_excel 대신 read_csv 만 써주면 됩니다. import pandas as pd df = pd.read_csv('3년치_전체판매로그.csv') 엑셀이 열다가 기절해버린 200만 행짜리 파일도, 파이썬에서는 위 코드 한 줄이면 단 몇 초 만에 데이터 프레임(표)으로 변환되어 메모리에 척척 올라갑니다. 이제 13편에서 배웠던 피벗 테이블 코드를 돌리면 200만 행의 데이터도 순식간에 요약할 수 있습니다. 2. 컴퓨터가 멈춘다면? 마법의 옵션 chunksize 파이썬이 아무리 강력해도, 내 컴퓨터의 램(RAM) 메모리가 8GB밖에 안 되는데 10GB짜리 초거대 데이터를 한 번에 불러오려 ...