학습 기록

Python 공부 기록 #11 -자동으로 쌓인 Excel 데이터, 제대로 들어왔을까? (pandas 기초)

0. 목차


1. 인트로: 파일은 생겼는데 데이터도 맞을까?

지난 글에서는 Windows 작업 스케줄러로 크롤러를 매일 실행하는 방법을 정리했습니다.

이제는 직접 실행 버튼을 누르지 않아도 크롤링 결과 Excel 파일이 자동으로 생기게 됐어요. 퇴근 후에 확인해 보니 파일이 쌓여 있는 모습이 생각보다 든든했습니다.

근데 파일이 만들어졌다고 해서, 안의 데이터까지 정상이라는 뜻은 아니었습니다.

수집 건수가 0건일 수도 있고, 필요한 열이 비어 있을 수도 있습니다.

크롤링 대상 사이트 구조가 바뀌면 프로그램은 오류 없이 끝났는데 제목이나 날짜가 빠진 파일만 남을 수도 있겠더라고요.

처음에는 Excel 파일을 직접 열어서 행 수를 확인하면 된다고 생각했습니다. 하지만 매일 같은 파일을 열고, 열 이름과 빈칸을 확인하는 것도 반복 작업이 될 것 같았습니다.

찾아보니까 Python에는 표 형태의 데이터를 읽고 정리하는 데 많이 쓰는 pandas라는 도구가 있었습니다.

오늘은 자동 저장된 Excel 파일을 pandas로 불러오고, 다음 작업을 시작해도 될 상태인지 확인해 봤습니다.


2. pandas는 어떤 도구일까?

이전 글에서 사용한 openpyxl은 Excel 파일을 만들고 값을 저장할 때 썼습니다.

pandas는 만들어진 Excel 파일을 Python 안으로 가져와서 표처럼 확인하고, 필요한 데이터만 골라볼 때 사용하는 도구입니다.

  • openpyxl: Excel 파일 만들기, 셀에 값 넣기
  • pandas: Excel 데이터를 표로 읽기, 건수와 상태 확인하기

pandas로 불러온 표는 DataFrame이라고 부릅니다.

처음엔 이름부터 조금 어렵게 느껴졌습니다. 저는 그냥 “Python 안으로 가져온 Excel 표”라고 생각하니 이해가 쉬웠어요.

pandas가 설치되어 있지 않다면 터미널에서 아래 명령어를 실행합니다.

pip install pandas openpyxl

pandas는 표 데이터를 다루는 도구이고, openpyxl.xlsx 파일을 읽을 때 필요합니다.


3. 크롤링 결과 Excel 파일 불러오기

크롤링 결과 파일 이름이 quotes.xlsx라고 가정해 봤습니다.

Python 파일과 Excel 파일이 같은 폴더에 있다면 아래 코드로 읽을 수 있습니다.

import pandas as pd

df = pd.read_excel("quotes.xlsx")

print(df.head())

import pandas as pd는 pandas를 불러오는 코드입니다.

뒤의 as pd는 앞으로 pandas라는 이름 대신 pd라고 짧게 쓰겠다는 뜻입니다. pandas 예제에서 자주 보이는 약속 같은 표현이었습니다.

pd.read_excel()은 Excel 파일을 읽어오는 명령이고, 불러온 표는 df라는 변수에 담았습니다.

마지막의 df.head()는 표의 첫 5개 행을 보여줍니다.

최신 크롤링 결과가 화면에 보이면, 파일을 열지 않아도 데이터가 들어왔는지 바로 확인할 수 있습니다. 여기서 이거 되겠는데? 싶었습니다.


4. 건수와 열 이름 확인하기

파일을 읽었다면 가장 먼저 데이터가 몇 건인지, 필요한 열이 빠지지 않았는지 확인해 봤습니다.

import pandas as pd

df = pd.read_excel("quotes.xlsx")

print("데이터 건수:", len(df))
print("행과 열 개수:", df.shape)
print("열 이름:", list(df.columns))

len(df)는 전체 데이터 건수를 알려줍니다.

df.shape는 행과 열 개수를 함께 보여줍니다. 결과가 (100, 3)이라면 100행, 3열로 된 표라는 뜻입니다.

df.columns는 열 이름을 확인합니다. 예를 들어 명언, 작가, 수집일이 필요한 파일이라면 이 이름들이 정확히 나오는지 보면 됩니다.

데이터를 정리하기 전에는 건수와 열 이름부터 보는 습관이 필요하겠다고 느꼈습니다.


5. 빈칸과 데이터 형식 점검하기

데이터가 들어와도 일부 값이 비어 있을 수 있습니다. 날짜나 숫자가 문자로 저장되는 경우도 있고요.

아래 코드는 열별 데이터 형식과 빈칸 개수를 확인하는 방법입니다.

import pandas as pd

df = pd.read_excel("quotes.xlsx")

df.info()

print(df.isna().sum())

df.info()를 실행하면 열 이름, 데이터 개수, 데이터 형식이 출력됩니다.

df.isna().sum()은 열마다 비어 있는 값이 몇 개인지 보여줍니다.

예를 들어 작가 열의 결과가 0이면 빈칸이 없다는 뜻입니다. 반대로 어제까지 없던 빈칸이 갑자기 늘었다면 크롤링 코드나 대상 사이트를 다시 확인해 봐야 합니다.

오늘은 빈칸을 지우거나 값을 채우지는 않았습니다. 우선 데이터가 믿을 만한 상태인지 살펴보는 데 집중했습니다.


6. 실무에서는 어디에 쓸 수 있을까?

크롤링 결과뿐 아니라, 회사에서 받는 Excel 추출 파일도 비슷한 방식으로 확인할 수 있을 것 같습니다.

  • CRM 추출 파일의 전체 건수 확인하기
  • 필요한 ID, 날짜, 금액 열이 빠지지 않았는지 점검하기
  • 정기적으로 생성되는 결과 파일이 0건인지 확인하기
  • 특정 열에 빈칸이 늘지 않았는지 확인하기

Excel을 열자마자 필터를 누르기 전에 행 수와 열 이름부터 보게 되는 경우가 많았습니다.

그 행동을 코드로 적어두면, 다음 파일에도 같은 기준을 적용할 수 있습니다. 아직 복잡한 분석은 아니지만 업무 자동화의 시작점이 될 수 있겠다고 느꼈습니다.


7. 삽질했던 부분들

처음에는 파일이 분명히 있는데도 아래 오류가 났습니다.

FileNotFoundError: No such file or directory

원인은 Python 파일과 Excel 파일이 서로 다른 폴더에 있었기 때문이었습니다.

파일 이름만 적으면 Python은 현재 실행 중인 폴더에서 파일을 찾습니다.

해결 방법은 두 가지였습니다.

  1. Python 파일과 Excel 파일을 같은 폴더에 넣기
  2. Excel 파일의 전체 경로를 작성하기
df = pd.read_excel(r"C:\PythonStudy\quotes.xlsx")

전체 경로를 적을 때 문자열 앞에 r을 붙이면 Windows 경로의 \ 기호를 그대로 읽을 수 있습니다.

작은 차이인데 코드가 틀린 줄 알고 한참 들여다보게 됐습니다.


8. 아웃트로: 파일 생성 확인에서 데이터 검수로

오늘은 pandas로 자동 저장된 Excel 파일을 불러오고, 데이터 상태를 확인해 봤습니다.

핵심 정리

  1. pd.read_excel()로 Excel 파일 불러오기
  2. df.head()로 데이터 앞부분 확인하기
  3. len(df), df.shape로 수집 건수 확인하기
  4. df.columns로 열 이름 점검하기
  5. df.info(), df.isna().sum()으로 형식과 빈칸 확인하기

이제 할 수 있는 것들

  • Excel 파일을 열지 않고 크롤링 결과 확인하기
  • 데이터가 0건으로 저장된 상황 빠르게 찾기
  • 필요한 열이 빠지지 않았는지 점검하기
  • 다음 데이터 정리 작업 전에 이상 여부 확인하기

지난 글이 크롤링을 매일 자동 실행하는 방법이었다면, 이번 글은 자동으로 쌓인 결과가 제대로 들어왔는지 확인하는 방법이었습니다.

다음 포스팅에서는 pandas로 필요한 열과 행만 골라내고, 원하는 순서로 정렬하는 방법을 공부해 보려고 합니다.

Excel에서 필터 버튼을 누르던 작업을 Python 코드로 바꿔볼 생각입니다.


태그: #Python #파이썬 #Python공부 #Python독학 #비전공자Python #직장인Python #업무자동화 #ChatGPT #Python기초 #pandas