728x90
반응형
Python의 Pandas, NumPy, Matplotlib, Seaborn 라이브러리를 활용해 데이터를 분석하고, koreanize_matplotlib를 통해 그래프에 한글 폰트를 적용합니다.
1. 라이브러리 임포트
우선 필요한 라이브러리를 임포트합니다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import koreanize_matplotlib
import seaborn as sns
2. 데이터셋 로드
타이타닉 데이터셋을 로드합니다. 이 데이터셋은 타이타닉호에서의 승객 정보와 생존 여부를 포함하고 있습니다.
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
data = pd.read_csv(url)
3. 데이터 확인
데이터의 상위 5행을 출력하여 데이터 구조를 확인합니다.
print("데이터 상위 5행:")
print(data.head())
데이터 정보와 결측치 개수도 확인합니다.
print("\n데이터 정보:")
print(data.info())
print("\n결측치 개수 확인:")
print(data.isnull().sum())
4. 결측치 처리
나이(Age) 열의 결측치를 나이의 평균으로 채웁니다. 이는 데이터 분석의 기본적인 전처리 과정입니다.
data['Age'].fillna(data['Age'].mean(), inplace=True)
5. 기본 통계 정보 확인
describe() 함수를 사용하여 수치형 데이터의 기본 통계 정보를 확인합니다.
print("\n기본 통계 정보:")
print(data.describe())
6. 나이에 따른 생존율 시각화
나이에 따른 생존율을 시각화합니다. hue 매개변수를 사용하여 생존 여부에 따라 색상을 구분합니다.
plt.figure(figsize=(10,6))
sns.histplot(data=data, x='Age', hue='Survived', multiple='stack', palette='Set2')
plt.title('나이에 따른 생존율 분포')
plt.xlabel('나이')
plt.ylabel('인원 수')
plt.show()
7. 성별에 따른 생존율 시각화
성별에 따른 생존율을 시각화합니다. countplot을 사용하여 성별에 따른 생존 여부를 시각적으로 나타냅니다.
plt.figure(figsize=(8,6))
sns.countplot(data=data, x='Sex', hue='Survived', palette='Set1')
plt.title('성별에 따른 생존율')
plt.xlabel('성별')
plt.ylabel('인원 수')
plt.show()
8. 상관관계 분석
데이터의 상관관계를 분석합니다. corr() 함수를 사용하여 상관 행렬을 생성합니다.
corr_matrix = data.corr()
print("\n상관 행렬:")
print(corr_matrix)
9. 상관 행렬 히트맵 시각화
상관 행렬을 히트맵으로 시각화하여 변수 간의 관계를 한눈에 볼 수 있도록 합니다.
plt.figure(figsize=(10,8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', linewidths=0.5)
plt.title('상관 행렬')
plt.show()
타이타닉 데이터셋을 통해 나이와 성별에 따른 생존율을 분석하고, 시각화하는 방법을 살펴보았습니다.
이러한 분석을 통해 데이터의 패턴을 이해하고, 의사 결정에 활용할 수 있습니다.
데이터 분석의 기초를 다지기 위해 반복적으로 실습해보시길 권장합니다.
전체코드
# 라이브러리 임포트
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import koreanize_matplotlib
import seaborn as sns
# 데이터셋 로드 (예: 타이타닉 데이터)
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
data = pd.read_csv(url)
# 데이터 상위 5행 출력 (데이터 확인)
print("데이터 상위 5행:")
print(data.head())
# 데이터 기본 정보 확인
print("\n데이터 정보:")
print(data.info())
# 결측치 확인
print("\n결측치 개수 확인:")
print(data.isnull().sum())
# 나이(Age) 열의 결측치를 나이의 평균으로 채우기
data['Age'].fillna(data['Age'].mean(), inplace=True)
# 간단한 통계 정보 확인 (describe() 함수 사용)
print("\n기본 통계 정보:")
print(data.describe())
# 나이에 따른 생존율 시각화
plt.figure(figsize=(10,6))
sns.histplot(data=data, x='Age', hue='Survived', multiple='stack', palette='Set2')
plt.title('나이에 따른 생존율 분포')
plt.xlabel('나이')
plt.ylabel('인원 수')
plt.show()
# 성별에 따른 생존율 시각화
plt.figure(figsize=(8,6))
sns.countplot(data=data, x='Sex', hue='Survived', palette='Set1')
plt.title('성별에 따른 생존율')
plt.xlabel('성별')
plt.ylabel('인원 수')
plt.show()
# 상관관계 분석 (상관 행렬)
corr_matrix = data.corr()
print("\n상관 행렬:")
print(corr_matrix)
# 상관 행렬 히트맵 시각화
plt.figure(figsize=(10,8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', linewidths=0.5)
plt.title('상관 행렬')
plt.show()
728x90
반응형
'Python > 빅데이터' 카테고리의 다른 글
집합을 이용한 데이터 분할: 효율적인 데이터 나누기 방법 (0) | 2024.10.31 |
---|---|
Pandas 자주 사용하는 함수 (0) | 2024.09.28 |