데린이 재영

씨본(Seaborn) 시각화 도구 이해하기 (2) 본문

멋사 AI school 7기/TIL

씨본(Seaborn) 시각화 도구 이해하기 (2)

재용용 2022. 10. 9. 00:02

목표 설정

- 멋쟁이사자 AI 스쿨 7일차(220927) 학습 내용 정리하기

- Seaborn 에서 제공하는 시각화 도구 개념 정리


배운 내용 정리

  • subplot 그릴 수 있는 것  ▶  relplot, displot, catplot (facetgrid 기능 제공)
  • describe(include="number or object")  ▶  특정 데이터 타입에 대한 통계를 볼 수 있음
    • 기본값 : 수치형 데이터 (include="object")
    • include="object" : 범주형 데이터
    • include="all" : 모든 데이터
    • exclude : 제외하는 기능 (예 : exclude=np.int64, int64 제외)
  • 범주형 데이터라고 무조건 object 형식은 아님
    • bool 이나 숫자(int, float)로 된 경우도 있음
  • 전체 열에 대한 유일값 출력
    • df.nunique()
    • 유일값이 매우 적은 것은 범주형 데이터에 가깝다고 볼 수 있음
    • unique : series 타입에만 가능
    • nunique : series, dataframe 타입에 가능
  • countplot
    • hue : color의 의미를 가짐 (3개 이상의 색상을 지정하지 말기 !  ▶  색이 많아지면 구분하기 힘듦)
    • hue를 추가하면, x에 대해 hue의 빈도값을 막대그래프로 볼 수 있음
  • 빈도수 구하기
    • 1개 변수의 빈도수 : pd.value_counts()
    • 2개 변수에 대한 빈도수 : pd.crosstab(index=, column=)
  • barplot
    • y축이 의미하는 파라미터  : estimator='mean'  ▶  평균값
    • ci : 신뢰구간  ▶  데이터가 많을 때, ci만 빼줘도 시간 단축됨 (ci=None)
  • 벤치마킹 하는 법
    • %timeit (여러번 실행)
    • %time (한번만 실행)
  • Groupby
    • 컬럼별로 그룹화하고 평균 등의 연산 가능
    • parameter에 대괄호 추가하면 표로 전달 됨  ▶  df.groupby(["컬럼명1"])[["컬럼명2"]].mean()
  • pivot과 pivot_table 차이
    • pivot : 형태만 끌어 올림
    • pivot_table : 연산 함, 직관적으로 만들어 둔 것
  • unstacking
    • unstack()
    • 특정 멀티인덱스에 있는 것을 컬럼으로 끌어올리는 것
    • 마지막 인덱스값을 끌어올림 (기본값)
    • unstack(0) : 0번 인덱스를 컬럼으로 끌어올림
  • stacking
    • stack()
    • 다시 인덱스로 값을 보낼 수 있음
  • boxplot
    • 최솟값, 제1사분위, 제2사분위, 제3사분위, 최댓값
    • 히스토그램과는 다르게 집단이 여러개인 경우에도 한 공간에서 수월하게 나타낼 수 있음
  • scatterplot
    • 범주형 데이터로 그렸을 때, 단점
      • 점이 겹칠 수 있음  ▶  빈도수 알기 어려움
      • 제대로 된 정보를 전달하기 어려움
      • 단점을 보완하기 위해  ▶  stripplot 사용
  • stripplot
    • scatterplot보다 점이 퍼져있어서 어디에 몰려있고 어디에 적은지 알 수 있음
    • 빈도수 확인에 적절함
  • swarmplot
    • stripplot도 어느정도 점이 겹칠 수 있음  ▶ swarmplot으로 겹치는 문제 해결 (swarm은 점이 옆으로 퍼져서 그려짐)
    • figure 사이즈가 작은 경우 & 점이 퍼짐 정도가 큰 경우  ▶  figure 사이즈를 키워주지 않으면 오류발생할 수 있음
  • catplot
    • 기본값 : stripplot
    • 캣플롯 그리는 이유 : col 변수 지정으로 서브 플롯 그릴 수 있음
    • parameter인 kind를 사용해 box, violin, count 그래프 그릴 수 있음
    • col_wrap : 한 줄에 몇개의 그래프를 놓을 것인지 선택 가능 
      • 예) sns.catplot(data=df, x="컬럼1", y="컬럼2", kind="box")
      • 예) sns.catplot(data=df, x="컬럼1", y="컬럼2", kind="violin", col="컬럼3", col_wrap=3)

참고문헌

(1) 상자 수염 그림

https://ko.wikipedia.org/wiki/%EC%83%81%EC%9E%90_%EC%88%98%EC%97%BC_%EA%B7%B8%EB%A6%BC 

(2) pandas 공식문서

https://pandas.pydata.org/docs/reference/api/pandas.Series.html#

(3) seaborn 공식문서

https://seaborn.pydata.org/tutorial/function_overview.html

 

Comments