[TIL] Day 6 - 파이썬 데이터 분석 기초
⛺ 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽/멋쟁이사자처럼 AI 스쿨 6기

[TIL] Day 6 - 파이썬 데이터 분석 기초

 

 

 6일차 

Python EDA 기초

  • pandas, numpy, seaborn, matplotlib import 하기
    • pd : 1.3.5 버전
    • sns : 0.11.2 버전
  • sns 을 이용하여 dataset 불러오기
  • df.index 을 이용하여 index 값 보기
  • df.columns 을 이용하여 열 값만 보기 (라벨만)
  • df.values 을 이용하여 값만 보기
  • df.types 을 이용하여 컬럼에 따른 데이터 타입 보기
  • df.head(n) 을 이용하여 상위부터 n 까지의 데이터 일부 가져오기
  • df.tail(n) 을 이용하여 하위부터 n 까지의 데이터 일부 가져오기
  • df.sample(frac|n) 을 이용하여 랜덤으로 데이터 일부 가져오기
  • df.info() 을 이용하여 데이터셋 요약하기
  • df.isnull() 이용하여 결측치 확인하기
    • df.isnull().sum()
    • df[df['a'].isnull()]
    • df.isnull().mean() * 100 : 결측치 비율 확인
  • df.loc() 을 이용하여 데이터 가져오기
    • loc[행]
    • loc[행, 열]
    • loc[조건, 열]
      • df.loc[df['a'].isnull(), 'b']
  • df.describe() 을 이용하여 기술통계 내기
    • df.describe().style.background_gradient(cmap="")
    • df.describe(include='object')
    • df['mpg'].describe()

 

기술 통계 모듈

  • report module 을 이용하여 데이터셋 간단하게 리포트하기
    • Pandas Profiling
      • 내가 보기엔 이게 제일 깔끔하고 쓸만해 보인다.
      • 이것만 내 노트북에 설치함. 3.1.0 버전
      • conda install pandas-profiling==3.1.0
    • Sweetviz
    • Autoviz

 

EDA 수치형 변수

  • plt.hist(figsize=(가로, 세로), bins=10) 를 이용하여 수치변수에 대한 히스토그램 그려보기
  • 주피터 에서 로그 뜨지 않게 하도록 하기
    • plt.show()
    • _ = sns.~
  • 왜도 (비대칭도) : 그래프가 얼마나 치우쳐져 있는가
    • df.skew() 을 이용하여 수치변수에 대한 왜도 값 구하기
  • 첨도 : 그래프가 정규분포에 비하여 얼마나 뾰족한가
    • df.kurt() 을 이용하여 수치변수에 대하여 첨도 값 구하기
  • sns.kdeplot(data, x, shade=True) 을 이용하여 밀도함수 그려보기
  • sns.rugplot(data, x) 을 이용하여 밀도함수 그려보기
  • df['a'].agg(['skew', 'kurt']) 을 이용하여 여러가지 통계값 구하기
  • sns.boxplot(data, x) 을 이용하여 박스그래프 그려보기
  • sns.violin(data, x) 을 이용하여 바이올린 그래프 그려보기
    • sns.violin(data)
  • df.std() 을 이용하여 표준편차 구하기
  • sns.scatterplot(data, x, y, hue) 을 이용하여 범주별로 색깔을 지정하고 점 그래프를 그려보기
    • legend=None 을 하면 범례 안보이고 그래프 그려준다
  • sns.regplot(data, x, y, line_kws={'color': 'r'}) 을 이용하여 스캐터 위에 회귀선 그려보기
    • line_kws 을 이용하면 회귀선 설정 가능
  • sns.residplot(data, x, y) 을 이용하여 잔차 회귀선 그려보기
    • 잔차 : 실제값 - 추정값
    • 그래서 중간 0 을 기준으로 그려진다.
  • sns.lmplot(data, x, y, hue, col) 을 이용하여 범주값에 따라 서브플롯 그려보기
  • sns.joinplot(data, x, y, kind) 을 이용하여 2개의 수치변수 그래프 그려보기
    • kind : scatter, kde, hist, hex, reg, resid
  • sns.pairplot(data, hue) 을 이용하여 모든 수치변수 간의 짝을 지어 그래프 그려보기
  • sns.lineplot(data, x, y, ci=None) 을 이용하여 선 그래프 그려보기
    • ci = None 을 하면 표준편차 표시가 없어진다.
  • sns.relplot(data, x, y, hue, ci, kind, col) 을 이용하여 범주량 변수에 따라 서브플롯 그려보기
    • rel 은 relation 의 약자
  • df.corr() 을 이용하여 상관계수 구하기
    • df.corr().style.background_gradient(cmap="")
  • 상관분석 개념
    • 선형적, 비선형적 관계를 가지고 있는 변수들
    • +1 : 양의 상관관계
    • -1 : 음의 상관관계
    • 상관관계를 지니고 있다고 해서, 인과관계를 지니고 있는 것은 아니다.
  • np.ones_like(df) 을 이용하여 df 와 크기는 똑같지만 모두 1인 다차원 배열 만들기
  • np.triu(df) 을 이용해 대각선 행렬을 기준으로 아래는 0, 위는 1 인 다차원 배열 만들기
  • plt.colormaps() 를 이용하여 cmap 에 사용할 수 있는 색상견본들 보기
  • sns.heatmap(df, annot, cmap, mask, vmax, vmin)
    • annot = True 하면 계수를 표현할 수 있다.
    • cmap="colorwarm" 을 이용하면 색을 입힐 수 있다.
    • mask 를 이용하면 필요한 것들만 볼 수 있다.
    • vmax, vmin 을 이용하면 색을 가장 진하고, 연하게 만들 값을 직접 지정할 수 있다.
    • 상관계수, 결측치 시각화에 사용

 

 

 

 회고 

수요일이라 그런지 조금 지치네요 🥸

저는 항상 월요일보다는 수요일이 힘든 것 같습니다. 그래서 공강 만들때도 항상 수요일을 노렸었는데.

여튼간 오늘 재미있는 시각화를 많이 배워 좋았습니다.

matplotlib 같은 경우는 색조합이 넘 구려서 사용을 잘 안했는데, 흠 확실히 빠르고 간편하게 쓰기 정말 좋은 것 같아요.

시각화 하는데 틈틈이 보며 사용하고, 복습하며 따라해봐야겠어요.

벌써 6일차가 되었습니다. 내일 이면 일주일이 되네요. 시간이 참 빠르게 지나가는 것 같습니다.

어느새 봄이고, 또 어느새 여름이에요. 또 지나다 보면 어느새 가을이 오겠죠?

그때까지 또 열심히 공부해야겠습니다.

오늘 그리고 github 이랑 TIL 에 대해서도 설명해주셨는데, 저는 아무래도 github 보다는 티스토리에 계속 써야겠어요.

블로그 중앙화를 노립니다. 한번 velog 를 써보기도 했지만, velog는 흠이 맥에서는 예쁘게 보이는데 윈도우에서는 폰트가 구려요.

그게 너무 큰 단점으로 다가와서 버리고, 깃헙은 글쎼요. 아직 안써봐서 모르겠긴 한데 아직까지 플랫폼을 옮길 생각은 없습니다.

내일은 또 뭘 배우게 될까요. 궁금합니다.

 

 

 

 

 

 


 

728x90