본문 바로가기

파이썬

10. 탐색적 데이터 분석

기초통계량 분석

# Pandas를 사용한 평균 계산
import pandas as pd

data = {'Score': [80, 90, 100, 70, 85]}  # 예제 데이터
df = pd.DataFrame(data)

# 평균 계산
mean_value = df['Score'].mean()
print("평균(Mean):", mean_value)

# 중앙값 계산
median_value = df['Score'].median()
print("중앙값(Median):", median_value)

# 최빈값 계산
mode_value = df['Score'].mode()
print("최빈값(Mode):", mode_value)

# 최댓값과 최솟값 계산
max_value = df['Score'].max()
min_value = df['Score'].min()
print("최댓값(Max):", max_value)
print("최솟값(Min):", min_value)

# 표준편차 계산
std_value = df['Score'].std()
print("표준편차(std):",std_value)

# 분산 계산
variance_value = df['Score'].var()
print("분산(Variance):", variance_value)

# pandas 라이브러리 임포트
import pandas as pd

# heart.csv 파일 읽기
file_path = 'datasets/heart.csv'  # CSV 파일 경로 지정
df = pd.read_csv(file_path)  # 데이터프레임 생성

# 기초통계량 분석
print("\n기초통계량 분석 결과:\n")
print(df.describe())  # 전체 통계 요약

# 평균(Mean) 계산
print("\n평균(Mean):")
print(df.mean())  # 각 열의 평균값 계산

# 중앙값(Median) 계산
print("\n중앙값(Median):")
print(df.median())  # 각 열의 중앙값 계산

# 최빈값(Mode) 계산
print("\n최빈값(Mode):")
print(df.mode())  # 각 열의 최빈값 계산

# 최대값(Max)과 최소값(Min) 계산
print("\n최댓값(Max)과 최솟값(Min):")
print("최댓값(Max):\n", df.max())  # 각 열의 최대값 계산
print("최솟값(Min):\n", df.min())  # 각 열의 최소값 계산

# 표준편차(Standard Deviation) 계산
print("\n표준편차(Standard Deviation):")
print(df.std())  # 각 열의 표준편차 계산

# 분산(Variance) 계산
print("\n분산(Variance):")
print(df.var())  # 각 열의 분산 계산

 

상관분석

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

file_path = 'datasets/heart.csv'  # 파일 경로 지정
df = pd.read_csv(file_path)
df.head()

correlation_matrix = df.corr(method='pearson')
print("\n상관계수 행렬:\n", correlation_matrix)

plt.figure(figsize=(12, 8))
sns.heatmap(correlation_matrix, annot=True, fmt=".2f", cmap='coolwarm', cbar=True)
plt.title('Correlation Matrix Heatmap')
plt.show()

 

교차분석

import pandas as pd # pandas 라이브러리 임포트 
file_path = "datasets/heart.csv" # 파일 경로
df = pd.read_csv(file_path)
df.head(5)

# 교차표 생성 
crosstab = pd.crosstab(df['sex'], df['output']) 
# 교차표 출력 
print("교차표(빈도):\n")
crosstab

# 행 기준 비율 계산
row_percentage = pd.crosstab(df['sex'], df['output'], normalize='index') * 100
print("\n행 기준 비율:\n")
row_percentage

# 열 기준 비율 계산
col_percentage = pd.crosstab(df['sex'], df['output'], normalize='columns') * 100
print("\n열 기준 비율:\n")
col_percentage

# 전체 기준 비율 계산
total_percentage = pd.crosstab(df['sex'], df['output'], normalize=True) * 100
print("\n전체 기준 비율:\n")
total_percentage

# 전체 기준 비율 계산 및 합계 포함
total_percentage_with_totals = pd.crosstab(df['sex'], df['output'], normalize=True, margins=True) * 100
total_percentage_with_totals = total_percentage_with_totals.round(2)
print("\n전체 기준 비율 (합계 포함):\n") 
total_percentage_with_totals


import seaborn as sns
import matplotlib.pyplot as plt

# 교차표를 히트맵으로 시각화
plt.figure(figsize=(8, 6))
sns.heatmap(crosstab, annot=True, fmt="d", cmap="coolwarm", cbar=True)
plt.title("Sex vs. Target (Crosstab Heatmap)")
plt.xlabel("Target (Heart Disease)")
plt.ylabel("Sex")
plt.show()

'파이썬' 카테고리의 다른 글