Excel에 비해 너무 큰 CSV 파일을 여는 방법
Excel이 CSV를 다 불러오지 못했다고 할 때 해야 할 일.
Excel이 파일을 완전히 불러오지 못했다는 경고를 띄우거나, CSV를 열었는데 아래쪽 행이 그냥 없어요. Excel의 행 제한에 걸린 거예요. 데이터는 모두 파일 안에 그대로 있어요. Excel이 보여 주지 못할 뿐이에요.
프로그램별 제한
| 프로그램 | 제한 |
|---|---|
| Excel | 시트당 1,048,576행, 16,384열 |
| Google Sheets | 스프레드시트당 1,000만 셀, 그래서 열이 많은 표는 행이 더 적어요 |
| Apple Numbers | 표당 1,000,000행 |
이 제한에 닿기 훨씬 전부터 큰 파일은 스프레드시트를 느리게 만들어요. 열이 많다면 몇십만 행만 되어도 스크롤, 정렬, 필터가 괴로울 수 있어요.
방법 1: 파일을 여러 부분으로 분할하기
가장 간단한 해결책이에요. CSV 분할 도구는 파일을 정해진 행 수만큼씩 나누고 모든 부분의 맨 위에 머리글 행을 복사해 줘서, 각 부분이 따로 열리고 작동해요. Excel이라면 부분마다 250,000~500,000행이 넉넉히 빠른 수준이에요. 따옴표 안 텍스트에 줄바꿈이 있어도 행이 반으로 잘리는 일은 없어요.
방법 2: 필요한 열만 남기기
내보낸 파일에 열이 수십 개인데 필요한 건 세 개뿐인 경우가 많아요. 나머지를 없애면 파일이 크게 줄고, Excel이 편하게 다룰 수 있는 범위로 들어오는 경우가 많아요. 열 추출은 지정한 열만, 적은 순서대로 남겨 줘요.
방법 3: Power Query로 가져오기
Excel의 데이터, 텍스트/CSV에서 옵션은 Power Query로 파일을 불러와요. 행이 시트에 들어가기 전에 필터링할 수도 있고, 시트 행 제한을 받지 않는 데이터 모델로 불러올 수도 있어요. 전체 데이터로 피벗 테이블을 만들어야 한다면 이 방법이 맞아요.
방법 4: 대용량 데이터용 도구 쓰기
수백만 행을 정기적으로 분석한다면 스프레드시트보다 데이터베이스나 데이터 도구가 더 알맞아요. SQL 데이터베이스, pandas를 쓰는 Python, 전용 CSV 뷰어 같은 것들이요. 한 번만 살펴볼 거라면 새 도구를 배우는 것보다 분할이 더 빨라요.
부분을 다시 합치기
부분들을 정리하거나 필터링했다면, CSV 병합이 머리글 행을 하나만 남기고 다시 파일 하나로 합쳐 줘요.
왜 브라우저에서 할까
대용량 CSV는 보통 고객, 주문, 거래 내역을 내보낸 파일이에요. 여기 연결된 도구는 브라우저 메모리 안에서 파일을 처리하고 절대 업로드하지 않아요. 노트북에서는 몇백 MB 파일도 괜찮지만, 휴대폰에서는 아주 큰 파일이 메모리 부족을 일으킬 수 있어요.