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
- Pandas Profiling
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
'⛺ 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽 > 멋쟁이사자처럼 AI 스쿨 6기' 카테고리의 다른 글
[TIL] Day 10 - 웹 스크래핑 (0) | 2022.05.17 |
---|---|
[TIL] Day 9 - 범주형 변수, 웹 스크래핑 (0) | 2022.05.16 |
[TIL] Day 7, 8 - 소공, SQL 기초 (0) | 2022.05.13 |
[TIL] Day 4, 5 - Python 문법, EDA (0) | 2022.05.10 |
[후기] 멋쟁이사자처럼 AI 스쿨 6기 자소서 & 2차과제 지원 과정 (7) | 2022.05.01 |