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()

실행 결과