티스토리 뷰

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()

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함