본문 바로가기
BIG DATA/PYTHON

[PYTHON] 파이썬으로 자동화된 데이터 보고서 생성하기

by 라일리T 2025. 2. 23.

파이썬으로 자동화된 데이터 보고서 생성하기

 

이전 글에서는 Selenium을 활용한 자동 웹 크롤링을 배웠습니다.
크롤링한 데이터를 효과적으로 활용하려면 자동화된 데이터 보고서를 생성하는 것이 중요합니다.

이번 글에서는 Pandas와 OpenPyXL을 활용하여 자동으로 엑셀 보고서를 생성하는 방법을 배워보겠습니다.

 


1. 크롤링한 데이터 불러오기

우리가 크롤링한 데이터는 보통 CSV 파일로 저장됩니다.
우선, 저장된 데이터를 Pandas를 사용해 불러옵니다.

import pandas as pd

# CSV 파일 불러오기
df = pd.read_csv("naver_python_news.csv")
print(df.head())  # 상위 5개 데이터 출력

✅ pd.read_csv("파일명.csv") → CSV 파일 읽기
✅ .head() → 데이터 일부 미리보기


2. 데이터 정리 및 분석

2.1 데이터 개수 확인

print("총 뉴스 기사 개수:", len(df))

2.2 중복 제거

df = df.drop_duplicates()  # 중복된 뉴스 제목 제거

2.3 특정 키워드 포함된 기사 찾기

keyword = "파이썬"
filtered_df = df[df["News Title"].str.contains(keyword, na=False)]
print(filtered_df)

✅ drop_duplicates() → 중복 데이터 제거
✅ .str.contains("키워드") → 특정 단어 포함된 데이터 필터링


3. 엑셀 보고서 자동 생성

3.1 OpenPyXL 설치

엑셀 파일을 생성하려면 OpenPyXL 라이브러리가 필요합니다.
설치가 안 되어 있다면 아래 명령어를 실행하세요.

pip install openpyxl

3.2 데이터 엑셀 파일로 저장

df.to_excel("news_report.xlsx", index=False, encoding="utf-8-sig")
print("엑셀 보고서 생성 완료!")

✅ .to_excel("파일명.xlsx") → 엑셀 파일로 저장
✅ index=False → 불필요한 인덱스 제거


4. 엑셀 서식 꾸미기

4.1 엑셀 파일에 제목 추가

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = "News Report"

# 제목 추가
ws.append(["뉴스 제목"])  # 첫 번째 행에 제목 추가

# 데이터 추가
for title in df["News Title"]:
    ws.append([title])

# 파일 저장
wb.save("styled_news_report.xlsx")
print("서식이 적용된 엑셀 보고서 생성 완료!")

✅ Workbook() → 새로운 엑셀 파일 생성
✅ .append([]) → 행 추가


5. 엑셀에 자동 서식 적용하기

5.1 글씨 크기 및 색상 변경

from openpyxl.styles import Font

# 제목 행 스타일 적용
header_font = Font(size=14, bold=True, color="FF0000")  # 글씨 크기 14, 빨간색
ws["A1"].font = header_font

wb.save("styled_news_report.xlsx")

✅ Font(size=14, bold=True, color="FF0000") → 글씨 스타일 변경


6. 엑셀에 그래프 추가하기

📌 기사 개수를 날짜별로 분석하여 그래프로 시각화

import matplotlib.pyplot as plt

df["Date"] = pd.to_datetime("today").strftime("%Y-%m-%d")  # 날짜 추가
df_count = df.groupby("Date").count()

# 그래프 생성
plt.figure(figsize=(8, 4))
plt.bar(df_count.index, df_count["News Title"], color="skyblue")
plt.xlabel("날짜")
plt.ylabel("기사 개수")
plt.title("날짜별 뉴스 기사 개수")
plt.xticks(rotation=45)
plt.savefig("news_chart.png")
plt.show()

✅ .groupby("Date").count() → 날짜별 데이터 개수 집계
✅ plt.bar() → 막대 그래프 생성


7. 결론

이번 글에서는 파이썬을 활용한 자동 데이터 보고서 생성 방법을 배웠습니다.

  • 크롤링한 데이터를 CSV로 불러오기
  • Pandas를 활용한 데이터 정리 및 분석
  • OpenPyXL을 활용한 엑셀 자동화
  • Matplotlib을 활용한 시각화(그래프 추가)

다음 글에서는 자동 이메일 발송 기능을 활용하여 보고서를 이메일로 보내는 방법을 배워보겠습니다! 🚀

 

2025.02.23 - [BIG DATA/PYTHON] - [PYTHON] 파이썬 Selenium을 활용한 자동 웹 크롤링

 

 

[PYTHON] 파이썬 웹 크롤링 데이터를 활용한 데이터 분석

웹 크롤링 데이터를 활용한 데이터 분석 이전 글에서는 **웹 크롤링(Web Scraping)**을 이용해 웹에서 데이터를 수집하는 방법을 배웠습니다.그렇다면 크롤링한 데이터를 어떻게 활용할 수 있을까

englishforkid.tistory.com

 

 

[PYTHON] 파이썬을 활용한 웹 크롤링(Web Crawling) 기초

파이썬을 활용한 웹 크롤링(Web Scraping) 기초인터넷에는 다양한 데이터가 존재합니다.하지만 모든 데이터를 직접 다운로드할 수 있는 것은 아니므로, **웹 크롤링(Web Scraping)**을 사용하여 원하는

englishforkid.tistory.com