검색
검색
공개 노트 검색
회원가입로그인

파이썬을 이용한 탐색적 데이터 분석 (EDA) 실습 노트북

요약
  • 이 노트북은 탐색적 데이터 분석(EDA)의 기본 개념과 실습을 제공합니다.
  • 기본적인 데이터 탐색 기법과 파이썬 라이브러리를 이용한 데이터 시각화 방법을 학습합니다.
  • 학생들의 시험 성적 데이터를 사용하여 실제 데이터 분석 과정을 다룹니다.

파이썬을 이용한 탐색적 데이터 분석 (EDA) 실습 노트북 image 1

소개

이 노트북은 탐색적 데이터 분석(EDA)의 기본 개념과 실습 문제를 제공합니다. EDA는 데이터를 이해하고 분석하는 첫 단계로, 데이터의 특성을 파악하고 패턴을 발견하는 과정입니다.

실습 노트북

Google Colab

학습 목표:

  1. EDA의 목적과 중요성 이해하기

  2. 기본적인 데이터 탐색 기법 익히기

  3. Python 라이브러리를 활용한 데이터 시각화 방법 배우기

1. 환경 설정 및 필요한 라이브러리 불러오기

먼저 필요한 Python 라이브러리들을 설치하고 불러오겠습니다.


# 필요한 라이브러리 설치 (Colab에서 실행 시)

!pip install pandas numpy matplotlib seaborn

# 라이브러리 불러오기

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 그래프를 노트북 안에 표시하기 위한 설정

%matplotlib inline

각 라이브러리의 역할:

  • numpy: 수치 계산을 위한 라이브러리

  • pandas: 데이터 처리와 분석을 위한 라이브러리

  • matplotlib: 기본적인 그래프 그리기를 위한 라이브러리

  • seaborn: 통계적 그래프를 그리기 위한 라이브러리

2. 데이터 불러오기

이제 분석할 데이터를 불러오겠습니다. 이 예제에서는 학생들의 시험 성적 데이터를 사용합니다.


# CSV 파일에서 데이터 읽어오기

data = pd.read_csv('students.csv')

# 데이터 미리보기

print(data.head())

pd.read_csv() 함수는 CSV 파일을 읽어 pandas DataFrame으로 변환합니다.

head() 함수는 데이터의 처음 5행을 보여줍니다.

3. 기본적인 데이터 탐색

3.1 데이터 기본 정보 확인


# 데이터셋의 기본 정보 확인

print(data.info())

info() 함수는 데이터의 컬럼, 데이터 타입, 결측치 등 기본적인 정보를 제공합니다.

3.2 기술 통계량 확인


# 수치형 데이터의 기술 통계량 확인

print(data.describe())

describe() 함수는 수치형 데이터의 평균, 표준편차, 최소값, 최대값 등의 통계량을 보여줍니다.

3.3 결측치 확인 및 처리


# 결측치 확인

print(data.isnull().sum())

# 결측치 처리 (예: 평균값으로 대체)

data = data.fillna(data.mean())

isnull().sum()은 각 컬럼의 결측치 개수를 보여줍니다.

fillna() 함수는 결측치를 지정한 값(여기서는 평균)으로 채웁니다.

4. 데이터 시각화

4.1 히스토그램

히스토그램은 데이터의 분포를 보여주는 그래프입니다.


# 수학 점수의 히스토그램

plt.figure(figsize=(10, 6))

plt.hist(data['math score'], bins=20)

plt.title('Distribution of Math Scores')

plt.xlabel('Score')

plt.ylabel('Frequency')

plt.show()

4.2 박스플롯

박스플롯은 데이터의 사분위수와 이상치를 보여주는 그래프입니다.


# 성별에 따른 수학 점수 박스플롯

plt.figure(figsize=(10, 6))

sns.boxplot(x='gender', y='math score', data=data)

plt.title('Math Scores by Gender')

plt.show()

4.3 산점도

산점도는 두 변수 간의 관계를 보여주는 그래프입니다.


# 수학 점수와 읽기 점수의 산점도

plt.figure(figsize=(10, 6))

plt.scatter(data['math score'], data['reading score'])

plt.title('Math Score vs Reading Score')

plt.xlabel('Math Score')

plt.ylabel('Reading Score')

plt.show()

5. 심화 분석

5.1 상관관계 분석

변수 간의 상관관계를 확인합니다.


# 상관관계 히트맵

plt.figure(figsize=(10, 8))

sns.heatmap(data.corr(), annot=True, cmap='coolwarm')

plt.title('Correlation Heatmap')

plt.show()

5.2 그룹별 분석

특정 기준으로 데이터를 그룹화하여 분석합니다.


# 성별에 따른 각 과목 평균 점수

gender_scores = data.groupby('gender')[['math score', 'reading score', 'writing score']].mean()

print(gender_scores)

6. 결론 및 인사이트 도출

지금까지의 분석을 바탕으로 다음과 같은 인사이트를 얻을 수 있습니다:

  1. 성별에 따른 점수 차이가 있는지

  2. 과목 간 상관관계가 어떤지

  3. 점수 분포가 정규 분포를 따르는지 등

추가적인 분석이나 의사 결정에 활용될 수 있습니다.

7. 추가 실습

  1. 다른 변수들의 분포도 확인해보세요.

  2. 부모의 교육 수준과 학생의 성적 간의 관계를 분석해보세요.

  3. 시각화 방법을 다양하게 적용해보세요 (예: 바이올린 플롯, 페어플롯 등).

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 381
heart
T
페이지 기반 대답
AI Chat