1. 데이터 로드 및 결측치
import pandas as pd
# 데이터 로드
df = pd.read_csv('your_dataset.csv') # 데이터 파일 경로를 입력하세요.
# 데이터프레임 기본 정보 확인
print(df.info())
print(df.describe())
# 결측치 확인
missing_values = df.isnull().sum()
print(missing_values[missing_values > 0])
2. 데이터 분포 및 상관관계 분석
import seaborn as sns
import matplotlib.pyplot as plt
# 히스토그램을 통해 각 컬럼의 분포 확인
df.hist(bins=30, figsize=(20, 20))
plt.show()
# 상관관계 매트릭스
corr_matrix = df.corr()
plt.figure(figsize=(15, 15))
sns.heatmap(corr_matrix, annot=True, fmt='.2f', cmap='coolwarm')
plt.show()
3. 결측치 처리
# 결측치 비율이 높은 컬럼 제거 (임계값을 설정하여 제거)
threshold = 0.5
df = df[df.columns[df.isnull().mean() < threshold]]
# 결측치 채우기 (숫자형은 평균, 범주형은 최빈값으로 채우기)
num_cols = df.select_dtypes(include=['float64', 'int64']).columns
cat_cols = df.select_dtypes(include=['object']).columns
df[num_cols] = df[num_cols].fillna(df[num_cols].mean())
df[cat_cols] = df[cat_cols].fillna(df[cat_cols].mode().iloc[0])
4. 주요 변수 시각화
# 상위 몇 개의 컬럼에 대해 박스플롯 및 바이올린 플롯 그리기
top_columns = df.columns[:10] # 상위 10개 컬럼에 대해 시각화
for col in top_columns:
plt.figure(figsize=(12, 6))
sns.boxplot(data=df, x=col)
plt.title(f'Boxplot of {col}')
plt.show()
plt.figure(figsize=(12, 6))
sns.violinplot(data=df, x=col)
plt.title(f'Violinplot of {col}')
plt.show()
5. 범주형 변수 시각화
# 범주형 변수의 값 분포 확인
for col in cat_cols:
plt.figure(figsize=(12, 6))
sns.countplot(data=df, x=col)
plt.title(f'Countplot of {col}')
plt.xticks(rotation=90)
plt.show()
6. 주요 변수 간의 관계 시각화
# 상관관계가 높은 변수들 간의 관계 시각화
import numpy as np
# 상관계수가 높은 상위 n개 변수 추출
n = 10
corr_pairs = corr_matrix.unstack().sort_values(kind="quicksort", ascending=False).drop_duplicates()
high_corr_pairs = corr_pairs[(corr_pairs > 0.5) & (corr_pairs < 1)]
# 상위 n개 변수 간의 관계 시각화
for pair in high_corr_pairs.index[:n]:
plt.figure(figsize=(12, 6))
sns.scatterplot(data=df, x=pair[0], y=pair[1])
plt.title(f'Scatterplot of {pair[0]} and {pair[1]}')
plt.show()
'Data Science' 카테고리의 다른 글
[Jupyter Lab] 주피터랩 Extension 설치 및 사용하기 (0) | 2023.07.03 |
---|---|
[Data Science 기초][4] 기초 통계 함수 및 NaN(Not a Number) 처리 (0) | 2022.11.30 |
[Data Science 기초][3] lambda, map, apply, applymap 함수 (0) | 2022.11.30 |
[Data Science 기초][2] DataFrame (2) | 2022.11.28 |
[Data Science 기초][1] Series (0) | 2022.11.28 |