1 분 소요

Seaborn을 활용한 데이터 분석

데이터 분석을 위한 시각화 라이브러리인 seaborn을 최대한 활용하여 데이터 분석을 해보자.

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

# 펭귄 데이터셋 받아오기
df = sns.load_dataset('penguins')
df.head()
  species     island  bill_length_mm  bill_depth_mm  flipper_length_mm  \
0  Adelie  Torgersen            39.1           18.7              181.0   
1  Adelie  Torgersen            39.5           17.4              186.0   
2  Adelie  Torgersen            40.3           18.0              195.0   
3  Adelie  Torgersen             NaN            NaN                NaN   
4  Adelie  Torgersen            36.7           19.3              193.0   

   body_mass_g     sex  
0       3750.0    Male  
1       3800.0  Female  
2       3250.0  Female  
3          NaN     NaN  
4       3450.0  Female  

 

데이터 속성 간 관계 분석

데이터 조합 요약 통계 시각화
Categorical - Categorical 교차 테이블 모자이크 플롯
Numeric - Categorical 카테고리별 통계 값 박스 플롯
Numeric - Numeric 상관계수 산점도

 

기본적인 데이터 분석 방법으로 각각 분석에 따라 시각화 기법이 다양해진다.

따라서 각 분석에 맞는 시각화 기법을 알아보도록 하자.

 

heatmap (상관계수 확인)

상관계수 히트맵으로 많이 쓰이며 두 변수 간에 얼마나 직선 상관관계가 있는지 시각화

sns.heatmap(df.corr(), annot=True)
plt.xticks(rotation=45)

image.png

 

kdeplot

하나 혹은 두 개의 변수에 대한 분포를 그린다.

sns.kdeplot(x='bill_length_mm', data=df)

image.png

sns.kdeplot(x='bill_length_mm', y='bill_depth_mm', data=df)

image.png

 

pairplot (변수간 산점도 시각화)

변수 간의 상관계수를 산점도로 확인하고 범주형 변수에 따라 분류도 가능

sns.pairplot(df)

image.png

sns.pairplot(df, hue='species')

image.png

sns.pairplot(df, hue='species', kind='reg', plot_kws={'line_kws': {'color':'red'}})

image.png

regplot

regplot으로 두 변수간의 산점도 확인 가능

Regression 결과를 그래프로 보여준다.

sns.regplot(x='flipper_length_mm', y='body_mass_g', data=df)

image.png

 

boxplot (이상치 확인)

최대(maximum), 최소(minimum), mean(평균), 1 사분위수(first quartile), 3 사분위수(third quartile)를 보기 위한 그래프

데이터의 분포를 시각화 하여 이상값이 있는지 확인 가능하며 범주형 변수에 따라 분류 가능

점으로 표시된 것이 이상값!

sns.boxplot(x='bill_length_mm', data=df)

image.png

sns.boxplot(x='bill_length_mm', y='island', data=df)
<matplotlib.axes._subplots.AxesSubplot at 0x7f6526de5450>
<Figure size 432x288 with 1 Axes>
sns.boxplot(x='bill_length_mm', y='island', hue='species', data=df)

image.png

sns.violinplot(x='bill_length_mm', y='island', hue='species', data=df)

image.png

 

Facet Grid

특정 조건에 따라 그래프를 각각 확인가능

sns.FacetGrid(df, col = 'species', row = 'sex').map(sns.distplot, 'bill_length_mm')

image.png

 

범주형 특성 분석

barplot

이변량(bivariate) 분석을 위한 plot

x축에는 범주형 변수, y축에는 연속형 변수를 넣는다.

sns.barplot(x = 'sex', y = 'bill_length_mm', data=df)

image.png

 

countplot

범주형 변수의 발생 횟수를 셈

sns.countplot(x = 'sex', data=df)

image.png

 

카테고리:

업데이트:

댓글남기기