티스토리 뷰
EDA 기초
월 : 웹 스크래핑 미니프로젝트 피드백, EDA 기초 (0301 서울 COVID19 데이터), matplotlib 활용
화 : matplotlib 활용 실습 (0302 FinanceDataReader 데이터)
수 : plotly 활용 실습(0303 미국주식 데이터)
목 : 인사이트 데이, 수료생 특강
matplotlib
- pandas : 분석 / numpy : 계산 / matplotlib : 시각화
- 정적 시각화 : 한 번 렌더링된 화면(차트, 그래프) 변경이 되지 않음.
- 사용이 복잡하여, 다른 툴(모듈)들과 같이 사용하게 됩니다.
1. 한글 폰트 사용
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 한글폰트 사용을 위해 설치 (https://github.com/ychoi-kr/koreanize-matplotlib)
# !pip install koreanize-matplotlib
import koreanize_matplotlib
2. 그래프 표시 설정
# 그래프에 retina display 적용
%config InlineBackend.figure_format = 'retina'
# 노트북 안에서 그래프를 자동 디스플레이 하겠다는 설정
%matplolib inline
3. 파일 로드 (데이터 가져오기)
# 파일을 읽어오기 전에 파일이 있는지 먼저 확인하는 법 > 파일 목록 보기
# 모든 파일 보기 :file_all = glob("*")
# .csv 로 끝나는 모든(*) 파일 보기
files = glob("data/seoul-covid*.csv")
file_paths = sorted(files)
file_paths
# > ['data/seoul-covid19-2021-12-18.csv', 'data/seoul-covid19-2021-12-26.csv']
4. 데이터 확인, 전처리
# 데이터 요약
df.info()
# 결측치의 합
df.isnull().sum()
# 결측치의 비율
df.isnull().mean()
# 기술통계 값
df.describe()
# 문자 데이터에 대한 기술통계 값
df.describe(include = "O")
# 1개 변수에 대한 빈도수 (default 값)
df["월"].value_counts()
# 1개 변수에 대한 빈도수 > 정렬해서 출력하기
df["월"].value_counts().sort_index()
# 1개 변수에 대한 반환
df["월"].value_counts()
# 파생변수 생성 > 세부적인 분석이 가능해짐.
# .dt (datetime) 형식으로 받아서 year를 추출
df["연도"] = df["확진일"].dt.year
df["월"] = df["확진일"].dt.month
# .astype(str) 수치 데이터를 문자 데이터로 변환
# 문자열 슬라이싱 등의 메서드 체이닝도 가능
df["연도월"] = df["확진일"].astype(str).str[:7]
시각화 실습
히스토그램 (도수분포도)
- 도수분포표를 그래프로 나타낸 것
- 수치 데이터의 분포를 보고자 할 때
- 범주형, 수치형 데이터에 모두 사용 가능하지만 pandas, matplotlib 에서는 수치형 데이터에서만 사용함.
df.hist(bins=50, figsize=(20,10));
2개 변수에 대해 시각화
- pd.crosstab 이용
gu_ym = pd.crosstab(df["거주구"], df["연도월"])
gu_ym.style.background_gradient()
'AI School : 파이썬, 데이터분석' 카테고리의 다른 글
[WIL] 멋쟁이사자처럼 AI SCHOOL : 13주차 (0) | 2023.03.16 |
---|---|
[WIL] 멋쟁이사자처럼 AI SCHOOL : 11주차 (0) | 2023.03.02 |