본문 바로가기
오픈소스를 위한 기초 상식

Pandas: Python 데이터 처리의 강력한 도구

by 지나가는 프로도 2025. 1. 23.

Pandas란 무엇인가?

데이터 분석과 처리는 현대 프로그래밍에서 필수적인 작업입니다. Python의 Pandas 라이브러리는 데이터 조작과 분석을 쉽게 수행할 수 있도록 설계된 도구로, 특히 테이블 형태의 데이터를 처리하는 데 강력한 기능을 제공합니다. 이 글에서는 Pandas가 무엇인지, 어떻게 사용하는지, 그리고 Requests를 통해 수집한 데이터를 Pandas로 처리하는 실습을 단계적으로 설명하겠습니다.


Pandas는 Python에서 데이터 분석과 처리를 위한 오픈소스 라이브러리입니다. 특히, Pandas는 **데이터프레임(DataFrame)**이라는 구조를 제공하여 테이블 형태의 데이터를 쉽게 다룰 수 있도록 도와줍니다. 데이터프레임은 엑셀 시트와 유사하며, 행과 열로 이루어진 데이터를 직관적으로 처리할 수 있습니다.

Pandas의 주요 특징

  • 데이터 구조 제공: Series(1차원)와 DataFrame(2차원)을 통해 다양한 데이터를 효율적으로 관리
  • 파일 읽기 및 쓰기: CSV, Excel, JSON, SQL 등 다양한 형식의 파일을 읽고 쓸 수 있음
  • 강력한 데이터 처리: 데이터 필터링, 그룹화, 집계, 결합 등 고급 분석 기능 제공
  • 결측값 처리: 누락된 데이터를 간편히 처리

Pandas 설치

Pandas는 Python 패키지 관리 도구인 pip를 통해 설치할 수 있습니다:

pip install pandas

 

Pandas의 기본 사용법

Pandas는 데이터를 읽고, 처리하며, 출력하는 과정에서 매우 직관적인 문법을 제공합니다. 다음은 Pandas의 기본적인 사용법을 보여주는 간단한 예제입니다.

예제: CSV 파일 읽기 및 데이터 처리

import pandas as pd

# CSV 파일 읽기
data = pd.read_csv('example.csv')

# 데이터프레임 출력
print(data.head())  # 상위 5개 데이터 출력

# 특정 열 선택
print(data['column_name'])

# 필터링: 특정 조건을 만족하는 데이터 선택
filtered_data = data[data['column_name'] > 50]
print(filtered_data)

주요 메서드 설명

  1. pd.read_csv(): CSV 파일을 읽어 데이터프레임으로 반환합니다.
  2. .head(): 데이터프레임의 상위 n개(기본값 5개)를 출력합니다.
  3. data['column_name']: 특정 열 데이터를 선택합니다.
  4. data[조건식]: 조건식을 만족하는 행만 필터링합니다.

 

Requests와 Pandas를 활용한 네이버 뉴스 데이터 분석

3.1 목표 설정

Requests를 사용해 네이버 뉴스 헤드라인을 수집한 뒤, Pandas를 이용해 데이터를 정리하고 분석해 보겠습니다.

3.2 데이터 수집

우선, Requests를 사용하여 네이버 뉴스 헤드라인 데이터를 수집합니다:

import requests
from bs4 import BeautifulSoup

# 네이버 메인 페이지 URL
url = 'https://www.naver.com'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}

# HTTP GET 요청
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

# 뉴스 데이터 수집
news_section = soup.find('div', class_='MediaNewsView-module__news_desc___a55yg')
headlines = news_section.find_all('a')

# 수집한 데이터 저장
data = []
for headline in headlines:
    data.append({'title': headline.text.strip(), 'link': headline['href']})

3.3 Pandas로 데이터 정리

수집한 데이터를 Pandas 데이터프레임으로 변환하여 정리합니다:

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame(data)

# 데이터프레임 출력
print(df.head())

# 데이터 저장 (CSV 파일로 저장)
df.to_csv('news_headlines.csv', index=False)

3.4 데이터 분석 예제

Pandas를 활용하여 데이터를 분석합니다. 예를 들어, 헤드라인 제목의 길이를 계산하여 새로운 열을 추가할 수 있습니다:

# 헤드라인 제목의 길이 계산
df['title_length'] = df['title'].apply(len)

# 제목 길이가 가장 긴 뉴스 출력
longest_title = df.loc[df['title_length'].idxmax()]
print("제목 길이가 가장 긴 뉴스:")
print(longest_title)

4. Pandas 사용 시 주의사항

  1. 대용량 데이터 처리:
    • Pandas는 메모리 상에 데이터를 로드하기 때문에, 데이터 크기가 매우 클 경우 속도가 느려지거나 메모리 부족 문제가 발생할 수 있습니다. 이 경우 dask와 같은 대안 라이브러리를 검토하세요.
  2. 결측값 처리:
    • 데이터에 누락된 값이 있다면 .fillna().dropna() 메서드를 사용해 처리할 수 있습니다.
  3. 데이터 확인:
    • df.info()df.describe()를 사용하여 데이터프레임의 구조와 통계를 확인하세요.

결론

Pandas는 데이터를 읽고, 처리하고, 분석하는 데 있어 필수적인 Python 라이브러리입니다. 본 글에서는 Pandas의 기본 개념과 사용법, 그리고 Requests로 수집한 데이터를 Pandas로 정리하고 분석하는 실습을 통해 데이터 분석의 기초를 다뤘습니다. Pandas를 활용해 보다 복잡한 데이터 분석에 도전해 보세요!