데이터 분석 (Data Analysis & Exploration) - 2. 데이터 수집 및 준비 (Data Collection & Preparation)

2025. 3. 20. 22:45데이터 분석/데이터 사이언스

2. 데이터 수집 및 준비 (Data Collection & Preparation)

데이터 분석에서 가장 중요한 첫 번째 단계는 데이터를 수집하고 준비하는 과정입니다. 이 단계에서는 데이터를 다양한 방법으로 수집한 후, 정리 및 정제하여 분석이 가능한 형태로 가공해야 합니다. 올바른 데이터 준비 과정이 없으면 분석의 신뢰도가 낮아지고, 잘못된 결과로 이어질 수 있습니다.


2.1 데이터 수집 방법 (Data Collection Methods)

데이터는 다양한 출처에서 수집될 수 있으며, 대표적인 수집 방법은 다음과 같습니다.

1) 웹 스크래핑 (Web Scraping)

웹사이트에서 데이터를 자동으로 수집하는 기법으로, HTML 페이지를 분석하여 원하는 정보를 추출합니다.

  • 주요 라이브러리: BeautifulSoup, Scrapy, Selenium
  • 활용 예제:
    • 뉴스 기사, 제품 가격 정보, 소셜미디어 댓글 수집
    • 실시간 크롤링을 통한 트렌드 분석
  • 주의점:
    • 과도한 요청으로 인해 IP 차단 가능 (Robots.txt 정책 확인 필요)
    • 법적 문제 발생 가능 (웹사이트 이용약관 준수 필요)

2) API (Application Programming Interface) 활용

기업이나 기관에서 제공하는 API를 통해 데이터를 수집하는 방식입니다.

  • 주요 라이브러리: requests, json
  • 활용 예제:
    • 트위터 API를 활용한 트윗 데이터 수집
    • 날씨 API를 통한 기상 데이터 수집
    • 금융 API를 통한 주식 시장 데이터 수집
  • 장점:
    • 공식적으로 제공되므로 안정적이고 합법적
    • 최신 데이터 접근 가능

3) 데이터베이스 (Database) 활용

데이터베이스에서 SQL을 이용하여 데이터를 조회하는 방식입니다.

  • 주요 데이터베이스: MySQL, PostgreSQL, SQLite, MongoDB
  • 주요 라이브러리: SQLAlchemy, sqlite3, pymongo
  • 활용 예제:
    • 기업의 고객 정보, 주문 내역 분석
    • 로그 데이터 수집 및 분석
  • 장점:
    • 대량 데이터 저장 및 관리 가능
    • 정형 데이터 분석에 적합

4) CSV 및 엑셀 파일 (CSV, Excel Files)

CSV, Excel, JSON과 같은 파일 형식으로 데이터를 저장하고 분석할 수 있습니다.

  • 주요 라이브러리: pandas (read_csv, read_excel)
  • 활용 예제:
    • 설문 조사 결과 분석
    • 재무 데이터 관리
  • 장점:
    • 간편하고 가볍게 사용 가능
    • 다양한 프로그램과 호환

2.2 데이터 저장 및 관리 (Data Storage & Management)

수집한 데이터는 효율적으로 저장하고 관리해야 합니다. 데이터의 크기와 특성에 따라 적절한 저장 방식을 선택하는 것이 중요합니다.

1) 파일 형식 선택

형식 설명 장점 단점
CSV 쉼표로 구분된 텍스트 파일 가볍고 범용성이 높음 대량 데이터 처리 속도 저하
JSON 키-값 구조의 데이터 저장 API와 호환성이 높음 구조가 복잡할 수 있음
Excel 스프레드시트 형식 데이터 사람이 직접 보기 쉬움 대용량 데이터 처리 어려움
Parquet 컬럼 기반 저장 포맷 대량 데이터 처리에 최적화 범용성이 낮음

2) 데이터베이스 활용

  • 관계형 데이터베이스 (RDBMS): MySQL, PostgreSQL, SQLite (정형 데이터에 적합)
  • 비관계형 데이터베이스 (NoSQL): MongoDB, Redis (반정형 또는 비정형 데이터에 적합)

3) 클라우드 스토리지

  • Google Drive, Dropbox: 소규모 데이터 공유 및 협업
  • AWS S3, Google Cloud Storage: 대용량 데이터 저장 및 분석

2.3 데이터 정제 (Data Cleaning)

데이터 분석에서 중요한 것은 데이터의 품질입니다. 결측값 처리, 이상치 탐지, 데이터 변환 등의 정제 과정을 거쳐야 정확한 분석이 가능합니다.

1) 결측값 처리 (Missing Values Handling)

  • 삭제 (Drop): 결측값이 적을 경우 해당 행(row) 또는 열(column) 삭제
  • 대체 (Imputation): 평균, 중앙값, 최빈값으로 채우기
  • 예측 모델 활용: 머신러닝을 이용해 결측값 예측 후 대체
import pandas as pd
df = pd.read_csv("data.csv")
df.fillna(df.mean(), inplace=True)  # 평균값으로 결측값 대체

2) 이상치 탐지 및 처리 (Outlier Detection & Handling)

  • 기준 설정: 평균 ± 3 표준편차, IQR(사분위 범위) 활용
  • 처리 방법: 제거, 대체, 변환
import numpy as np
Q1 = df["column"].quantile(0.25)
Q3 = df["column"].quantile(0.75)
IQR = Q3 - Q1
df_filtered = df[(df["column"] >= Q1 - 1.5 * IQR) & (df["column"] <= Q3 + 1.5 * IQR)]

3) 데이터 변환 (Data Transformation)

  • 로그 변환 (Log Transformation)
  • 스케일링 (Standardization, Normalization)
  • 범주형 데이터 인코딩

2.4 데이터 전처리 기법 (Data Preprocessing Techniques)

1) 정규화 (Normalization)

데이터의 값 범위를 일정하게 맞추는 과정으로, 주로 0과 1 사이로 변환합니다.

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df)

2) 인코딩 (Encoding)

범주형 데이터를 수치형 데이터로 변환하는 과정입니다.

  • One-Hot Encoding: 고유한 값을 이진 벡터로 변환
  • Label Encoding: 각 카테고리를 숫자로 변환
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
df_encoded = encoder.fit_transform(df[['category_column']])

3) 차원 축소 (Dimensionality Reduction)

고차원의 데이터를 저차원으로 변환하여 분석을 용이하게 만듭니다.

  • PCA (주성분 분석): 데이터의 주요 특징을 유지하면서 차원 축소
  • LDA (선형 판별 분석): 분류 문제에서 차원 축소에 활용
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
df_pca = pca.fit_transform(df)

정리

데이터 분석에서 가장 중요한 단계 중 하나는 데이터를 수집하고 정리하는 과정입니다. 데이터를 효율적으로 관리하고, 불필요한 노이즈를 제거하며, 분석이 가능한 형태로 변환하는 것이 필수적입니다.