엑셀 셀 병합 데이터, 파이썬으로 불러올 때 엉망으로 깨지는 현상 완벽 해결법
실무에서 다루는 엑셀 보고서들을 보면 십중팔구 '셀 병합'이 되어 있습니다. 부서명, 날짜, 카테고리 등을 보기 좋게 묶어두는 것은 사람의 눈에는 참 친절한 방식입니다. 하지만 파이썬으로 자동화를 시작한 직장인들에게 이 예쁘게 병합된 셀은 그야말로 재앙의 시작입니다. 지난번 배운 대로 판다스(Pandas)를 이용해 기분 좋게 엑셀을 불러왔는데, 화면에 나타난 데이터가 중간중간 'NaN'이라는 정체불명의 글자로 도배되어 엉망진창으로 깨져 있던 경험, 다들 있으실 겁니다. 저 역시 처음 이 현상을 마주했을 때 코드가 완전히 망가진 줄 알고 식은땀을 흘렸습니다. 결국 파이썬 창을 닫고 다시 엑셀을 열어 병합을 다 풀고 일일이 드래그해서 빈칸을 채워 넣는 '수동 노가다'를 한 적도 있죠. 하지만 원리만 알면 파이썬에서 단 한 줄의 코드로 이 문제를 깔끔하게 해결할 수 있습니다. 오늘은 파이썬이 병합된 셀을 어떻게 인식하는지 그 원리를 이해하고, 마법의 함수를 통해 깨진 데이터를 원래대로 복원하는 방법을 알아보겠습니다. 1. 파이썬은 왜 병합된 셀을 'NaN'으로 뱉어낼까? 사람의 눈에는 3개의 행이 하나로 합쳐진 거대한 셀 안에 '영업팀'이라는 글자가 꽉 차 있는 것처럼 보입니다. 하지만 컴퓨터(엑셀 시스템 내부)가 데이터를 기억하는 방식은 다릅니다. 셀을 병합하면 오직 가장 위쪽(또는 왼쪽)의 첫 번째 셀에만 '영업팀'이라는 실제 데이터가 남고, 나머지 아래쪽 두 개의 셀은 텅 빈 공간으로 처리됩니다. 그저 시각적으로만 하나인 것처럼 껍데기를 씌워 둔 것입니다. 파이썬의 판다스는 사람처럼 예쁜 껍데기를 보지 않고 엑셀의 뼈대(Raw Data)를 아주 정직하게 읽어옵니다. 그래서 첫 번째 행에는 '영업팀'을 정상적으로 가져오지만, 나머지 두 개의 빈칸은 "여긴 데이터가 없는데요?"라며 결측치를 의미하는 'NaN(Not a Number)'...