티스토리 뷰
데이터 분석은 다양한 도구와 기법을 활용하여 데이터를 이해하고 인사이트를 도출하는 과정입니다. 이번 글에서는 데이터 분석의 주요 과정과 이를 실전에서 어떻게 적용할 수 있는지를 설명하며, 예제로 넷플릭스 데이터를 활용해보겠습니다.
1. 데이터 분석 과정 개요
데이터 분석은 다음과 같은 단계로 진행됩니다:
1.1 데이터 수집
- 다양한 데이터 소스에서 데이터를 가져오는 단계
- 파일(CSV, JSON, Excel), 데이터베이스(SQL), 웹 스크래핑 등을 활용 가능
1.2 데이터 탐색 및 전처리
- 데이터의 구조를 파악하고 결측치를 처리하는 과정
- 데이터의 통계적 특성 확인 및 이상치 제거
1.3 피처 엔지니어링
- 기존 데이터를 조작하여 분석에 유용한 새로운 변수를 생성
1.4 데이터 시각화
- 데이터의 패턴을 파악하고 가독성을 높이기 위해 그래프 등을 활용
1.5 분석 및 모델링
- 데이터의 인사이트를 도출하고 머신러닝 모델 등을 활용하여 예측 수행
2. 데이터 탐색 및 전처리
2.1 데이터 구조 확인
import pandas as pd
# 데이터 불러오기
netflix = pd.read_csv("netflix_titles.csv")
# 데이터 개요 확인
print(netflix.info())
print(netflix.describe())
데이터의 컬럼 개수, 데이터 타입, 결측치 여부 등을 확인하여 데이터의 상태를 파악합니다.
2.2 결측치 처리
결측치는 데이터 분석의 정확도를 저하시킬 수 있기 때문에 적절한 처리가 필요합니다.
# 결측치 비율 확인
missing_values = netflix.isna().sum() / len(netflix) * 100
print(missing_values)
# 특정 컬럼의 결측치를 대체
netflix['country'].fillna('No Data', inplace=True)
결측치 처리 방법:
- 5% 미만: 데이터 손실이 크지 않으므로 삭제 가능
- 5~20%: 평균, 중앙값, 최빈값으로 대체
- 20% 이상: 변수 자체를 삭제하거나 예측 모델을 이용해 보완
3. 피처 엔지니어링
데이터를 더욱 효과적으로 활용하기 위해 새로운 변수를 생성하는 과정입니다.
# 시청 등급을 기반으로 연령대 분류
age_group_map = {
'G': 'All', 'TV-G': 'All', 'TV-Y': 'All',
'PG': 'Older Kids', 'TV-Y7': 'Older Kids',
'PG-13': 'Teens', 'TV-14': 'Young Adults',
'NC-17': 'Adults', 'R': 'Adults', 'TV-MA': 'Adults'
}
netflix['age_group'] = netflix['rating'].map(age_group_map)
피처 엔지니어링을 통해 데이터의 가독성과 분석 효율성을 높일 수 있습니다.
4. 데이터 시각화
4.1 데이터 분포 확인
데이터의 트렌드를 파악하기 위해 다양한 시각화 기법을 활용합니다.
import seaborn as sns
import matplotlib.pyplot as plt
# 영화 vs TV쇼 비율
sns.countplot(x=netflix['type'], palette=['#b20710', '#221f1f'])
plt.title("Movies & TV Shows Distribution")
plt.show()
4.2 인기 장르 분석
genres = netflix['listed_in'].str.split(', ').explode().value_counts()
plt.figure(figsize=(12, 6))
sns.barplot(x=genres.values[:10], y=genres.index[:10], palette='RdGy')
plt.xlabel('Count')
plt.ylabel('Genre')
plt.title('Top 10 Popular Genres')
plt.show()
이러한 분석을 통해 어떤 장르가 가장 인기가 있는지 파악할 수 있습니다.

4.3 국가별 콘텐츠 분포 분석 (히트맵 활용)
netflix_age_country = netflix.explode('country').groupby('age_group')['country'].value_counts().unstack()
netflix_age_country.fillna(0, inplace=True)
plt.figure(figsize=(12, 5))
sns.heatmap(netflix_age_country, cmap='Reds', annot=True, fmt='.0f')
plt.title('Netflix Content Distribution by Age Group & Country')
plt.show()

5. 데이터 분석의 가치
데이터 분석을 통해 얻을 수 있는 주요 인사이트:
- 데이터 품질 향상: 결측치 및 이상치를 제거하여 신뢰성 높은 데이터를 구축
- 트렌드 분석: 인기 콘텐츠, 장르 분포, 연령별 선호도 등을 파악
- 비즈니스 전략 수립: 데이터를 기반으로 콘텐츠 추천 시스템 개선, 마케팅 전략 수립 가능
이번 분석에서는 넷플릭스 데이터를 활용했지만, 이러한 방법론은 다양한 산업과 데이터셋에서 적용 가능합니다. 데이터 분석을 통해 보다 정확한 의사 결정을 내릴 수 있도록 지속적으로 학습하고 실습하는 것이 중요합니다.
'LG U+ Why Not SW 부트캠프 5기' 카테고리의 다른 글
| 한글을 표기하기 위한 글꼴 변경(윈도우, macOS에 대해 각각 처리) (0) | 2025.02.18 |
|---|---|
| 의료 데이터 분석과 웹 크롤링을 활용한 데이터 수집 (0) | 2025.02.17 |
| Python 기초 개념 총정리: 필수 문법과 실전 활용 (0) | 2025.02.11 |
| Pandas를 활용한 데이터 분석: 기본 개념부터 실전 활용까지 (0) | 2025.02.05 |
| 파이썬 학습: Folium과 tkinter로 시작하는 GUI 개발 및 데이터 시각화 (0) | 2025.01.24 |
