40대 비전공자 직장인의 파이썬 독학기 9편: 파이썬 엑셀 필터링으로 조건에 맞는 데이터만 1초 만에 추출하기

지난 8편에서는 결측치를 처리하며 파이썬 엑셀 필터링을 위한 깨끗한 마스터 데이터를 완성했습니다. 빈칸이 모두 채워진 수십 개의 방역 점검 대장이 하나의 거대한 엑셀 파일로 뭉쳐져 있는 상태입니다. 데이터 정제라는 큰 산을 하나 넘으신 것을 축하드립니다.

하지만 파일이 깨끗해졌다고 해서 우리의 업무가 끝난 것은 아닙니다. 실무자인 제가 매일 아침 수천 줄의 통합 엑셀 파일에서 당장 확인하고 조치해야 할 핵심 데이터는 딱 하나, 바로 점검 결과가 ‘긴급방역’으로 체크된 위험 현장들뿐입니다.

예전에는 엑셀 첫 줄에 깔때기 모양의 필터 버튼을 누르고, 스크롤을 쫙 내려서 원하는 항목만 체크한 뒤 다시 복사해서 새 파일에 붙여넣었습니다. 현장이 수백 곳으로 늘어나고 파일이 무거워지니 이 단순 작업에만 매일 아침 30분이 날아갔습니다.

그래서 오늘 9편에서는 수천 줄의 데이터 속에서 내가 원하는 조건만 1초 만에 쏙쏙 뽑아내어 새 파일로 저장하는 마법의 실무 기술을 공유합니다. 비전공자 40대 아저씨의 퇴근 시간을 확 앞당겨준 일등 공신입니다.

수작업으로 진행하여 업무 시간을 잡아먹는 기존의 엑셀 필터
Alt 텍스트: 수작업으로 진행하여 업무 시간을 잡아먹는 기존의 엑셀 필터

1. 파이썬 엑셀 필터링 핵심: pandas 라이브러리로 3줄 컷

8편에 이어 오늘도 파이썬에서 엑셀 데이터를 다루는 포크레인인 pandas(판다스)를 이용합니다. 복잡했던 마우스 클릭 작업이 너무나도 허무하게 코딩 단 3줄로 끝납니다. 바탕화면에 저장해 둔 ‘정제완료_방역대장.xlsx’ 파일에서 ‘점검상태’가 ‘긴급방역’인 줄만 걸러내 보겠습니다.

Python

import pandas as pd

# 1. 8편에서 만들어둔 깨끗한 엑셀 파일 불러오기
df = pd.read_excel(r'C:\Users\Admin\Desktop\정제완료_방역대장.xlsx')

# 2. 핵심 코드! '점검상태' 열에서 '긴급방역'이라는 글씨와 똑같은 줄만 추출합니다.
urgent_df = df[df['점검상태'] == '긴급방역']

# 3. 걸러낸 데이터를 새로운 엑셀 파일로 바탕화면에 저장하기
urgent_df.to_excel(r'C:\Users\Admin\Desktop\긴급방역_오늘출동.xlsx', index=False)
print("긴급 현장 추출이 1초 만에 완료되었습니다!")

위의 2번 코드를 유심히 봐주세요. df[df['점검상태'] == '긴급방역'] 이 짧고 직관적인 코드가 오늘 배울 기술의 전부입니다. 파이썬에서는 ‘같다’라는 표시를 할 때 수학처럼 = 하나가 아니라 == 두 개를 연달아 써야 한다는 점만 꼭 기억하시면 됩니다.

2. 실전 트러블슈팅: 필터링 결과가 빈 파일(0개)로 나올 때

이 코드를 인터넷에서 보고 현업 데이터에 곧바로 파이썬 엑셀 필터링을 돌려보신 초보자분들 중 십중팔구는 텅 빈 엑셀 파일을 결과물로 받으시고 당황하십니다. “분명히 원본 엑셀에는 긴급방역 현장이 10곳이나 있는데, 결과물에는 왜 빈 파일만 나올까?”

원인은 코드가 틀려서가 아니라, 현장 직원들이 스마트폰이나 PC로 엑셀에 데이터를 입력할 때 무의식적으로 누르는 ‘스페이스바(띄어쓰기)’에 있습니다. 사람의 눈으로 보기에는 똑같은 ‘긴급방역’이지만, 파이썬 기계의 눈에는 ‘긴급방역 ‘(뒤에 띄어쓰기 있음)과 ‘긴급방역’은 완전히 다른 글자로 인식됩니다. 그래서 조건에 맞는 데이터가 단 하나도 없다고 단호하게 뱉어버린 것이죠.

단 3줄의 코드로 1초 만에 완료되는 파이썬 엑셀 필터링 터미널 실행 화면
Alt 텍스트: 단 3줄의 코드로 1초 만에 완료되는 파이썬 엑셀 필터링 터미널 실행 화면

3. 숨은 공백 제거 후 엑셀 필터링 완벽하게 적용하기

이럴 때 완벽하게 파이썬 엑셀 필터링 코드를 작동시키는 실무자의 비밀 무기가 있습니다. 바로 데이터 앞뒤에 숨어있는 쓸데없는 띄어쓰기를 싹 지워주는 str.strip() 함수입니다. 코드를 복잡하게 갈아엎을 필요 없이 딱 한 줄만 추가해 주면 모든 문제가 마법처럼 해결됩니다.

Python

import pandas as pd
df = pd.read_excel(r'C:\Users\Admin\Desktop\정제완료_방역대장.xlsx')

# ★ 실무 꿀팁: '점검상태' 열의 모든 텍스트 앞뒤 공백을 강제로 날려버립니다.
df['점검상태'] = df['점검상태'].str.strip()

# 이제 띄어쓰기 걱정 없이 완벽하게 조건 추출이 작동합니다.
urgent_df = df[df['점검상태'] == '긴급방역']

urgent_df.to_excel(r'C:\Users\Admin\Desktop\긴급방역_오늘출동.xlsx', index=False)

이 코드를 추가하고 다시 실행해 보세요. 눈에 보이지 않던 얄미운 스페이스바 공백들이 모두 날아가고, 우리가 원했던 긴급 현장 10곳이 족집게처럼 완벽하게 추출되어 바탕화면에 예쁘게 저장될 것입니다.

4. 다중 조건 필터링: 두 가지 조건을 동시에 만족하려면? (보너스)

조금 더 실력이 붙으시면 “긴급방역 현장 중에서 ‘화성시’에 있는 곳만 뽑을 순 없을까?” 하는 응용이 필요해집니다. 이럴 때는 조건 두 개를 소괄호 ()로 묶고, 그사이에 기호 & (그리고, AND)를 넣어주시면 됩니다.

  • df[(df['점검상태'] == '긴급방역') & (df['지역'] == '화성시')]

이런 식으로 파이썬 엑셀 필터링 조건을 무한대로 이어 붙이면, 아무리 복잡한 실무 데이터라도 여러분의 입맛에 맞게 단 1초 만에 썰어낼 수 있습니다. 이 엄청난 데이터 처리 속도와 정확성이 바로 우리가 늦은 나이에도 머리를 싸매며 파이썬을 배우는 진짜 이유입니다.

5. 글을 마치며: 다음 단계는 완전한 무인 자동화

오늘은 pandas를 이용한 추출 기능과, 실전 현업에서 100% 마주치게 되는 ‘띄어쓰기 에러’ 대처법까지 아주 상세히 알아보았습니다. 이제 매일 아침 수천 줄의 현장 대장을 멍하니 쳐다보며 필터 버튼을 누를 필요가 없습니다.

1편부터 9편까지 잘 따라오셨다면 엑셀 데이터를 다루는 웬만한 스킬은 모두 섭렵하신 것입니다. 하지만 아직 자동화의 꽃이 하나 남았습니다. 다음 10편에서는 오늘 추출한 이 ‘긴급방역’ 엑셀 파일을 거래처나 사장님께 내 손을 거치지 않고 파이썬이 직접 이메일(Gmail)로 자동 첨부하여 보내는 방법을 다루어 보겠습니다.

앞으로도 현장 실무에 즉시 적용할 수 있는 유용한 파이썬 자동화 팁과 데이터 분석 노하우를 꾸준히 공유하겠습니다. 오늘 배운 내용을 여러분의 엑셀 데이터에 꼭 한 번 적용해 보시길 바라며, 대한민국의 모든 40대 직장인들의 칼퇴를 열렬히 응원합니다!

(이전 글: [40대 비전공자 직장인의 파이썬 독학기 8편: 파이썬 엑셀 빈칸 없애기] 보러 가기)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다