PM 트랙_강의/데이터 분석
파이썬(Python) 나아가기 - numpy, seaborn 라이브러리
은하_carol
2025. 1. 7. 11:43
numpy 라이브러리
- 데이터 연산을 빠르고 쉽게 할 수 있도록 도와주는 라이브러리
- 파이썬으로 수치 계산, 여러 함수들을 제공하여 많은 양의 복잡한 수치 계산 시 필수 사용
seaborn 라이브러리
- matplotlib 라이브러리로부터 만들어진 데이터 시각화를 위한 라이브러리
- 랜덤으로 분포되어 있는 데이터를 시각화할 때 사용
numpy, seaborn 라이브러리 사용
1. 라이브러리 사용 선언
# 작성 코드
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
2. 데이터 분석 전 결측지 제거 및 통계치 요약
- describe() 함수는 통계치를 요약해 주는 함수
- 총 데이터 수, 평균, 표준편차 등 확인 가능
# 작성 코드
# 파일 읽기
titanic = pd.read_table('train.csv', sep = ',')
titanic.head()
# 결측지 제거
print(titanic.isnull().sum())
titanic = titanic.dropna()
# 통계치 요약
titanic.describe()
# 실행 결과
PassengerId 0
Pclass 0
Sex 0
Age 177
SibSp 0
Parch 0
Fare 0
Survived 0
dtype: int64
PassengerId Pclass Sex Age SibSp Parch Fare Survived
count 714.000000 714.000000 714.000000 714.000000 714.000000 714.000000 714.000000 714.000000
mean 448.582633 2.236695 0.365546 29.699118 0.512605 0.431373 34.694514 0.406162
std 259.119524 0.838250 0.481921 14.526497 0.929783 0.853289 52.918930 0.491460
min 1.000000 1.000000 0.000000 0.420000 0.000000 0.000000 0.000000 0.000000
25% 222.250000 1.000000 0.000000 20.125000 0.000000 0.000000 8.050000 0.000000
50% 445.000000 2.000000 0.000000 28.000000 0.000000 0.000000 15.741700 0.000000
75% 677.750000 3.000000 1.000000 38.000000 1.000000 1.000000 33.375000 1.000000
max 891.000000 3.000000 1.000000 80.000000 5.000000 6.000000 512.329200 1.000000
3. 분포도 그래프화
- hist() 함수는 히스토그램을 그려 볼 수 있는 함수
- bins: 원하는 칸의 개수로, 리스트 형식으로 인자 값을 부여하여 구간 수동 설정 가능
- figsize: 그래프 사이즈로, (가로 길이, 세로 길이)로 사용
- gird: 그리드 사용 여부
- color: 그래프 색상
- alpha: 투명도
- edgecolor: 테두리 색상
- range: 범위
- cumulative: 누적 히스토그램 표현 여부
- histype: 히스토그램 종류로, bar(기본 값), barstacked, step, stepfilled 존재
# 작성 코드
titanic['Age'].hist(bins = 40, figsize = (18, 8), grid = True)
- cut() 함수는 구간을 나누는 함수
- groupby() 함수는 구분을 지어 데이터 확인할 수 있는 함수
- mean() 함수는 평균 값을 구하는 함수
# 작성 코드
titanic['Age_cat'] = pd.cut(titanic['Age'], bins = [0, 3, 7, 15, 30, 60, 100], include_lowest = True, labels = ['baby', 'children', 'teenage', 'young', 'adult', 'old'])
titanic.groupby('Age_cat').mean()
# 실행 결과
Age_cat PassengerId Pclass Sex Age SibSp Parch Fare Survived
baby 396.700000 2.533333 0.400000 1.672333 1.733333 1.366667 33.364307 0.666667
children 466.700000 2.650000 0.600000 4.950000 1.750000 1.350000 27.905830 0.700000
teenage 442.060606 2.696970 0.575758 11.500000 1.727273 1.121212 35.217430 0.454545
young 435.058282 2.426380 0.352761 23.262270 0.355828 0.263804 28.015413 0.358896
adult 470.388693 1.954064 0.353357 41.132509 0.363958 0.392226 42.429225 0.420495
old 432.545455 1.590909 0.136364 66.022727 0.136364 0.272727 41.371214 0.227273
- barplot() 함수를 사용하면 바 그래프 생성 가능
- show() 함수는 그래프를 나타내는 함수
# 작성 코드
plt.figure(figsize = (14, 5))
sns.barplot(x = 'Age_cat', y = 'Survived', data = titanic)
plt.show()