OkBublewrap

실전 데이터 분석 프로젝트(1) 본문

Python/프로젝트

실전 데이터 분석 프로젝트(1)

옥뽁뽁 2023. 3. 21. 23:59

파이썬 철저 입문에 마지막 챕터이다.

 

데이터 분석 프로세스

주제 선정 > 데이터 수집 > 데이터 처리 > 데이터 분석 > 정보 도출

 

 

주제 선정

데이터 분석을 위해 가장 먼저 해야 할 일은 데이터 분석의 목표를 명확히 하고 이로부터 주제를 선정하는 것

즉, 데이터 분석을 통해 얻고 싶은 결과가 무엇인지를 설정하는 것, 이 단계에서는 요구사항도 구체화하고 분석의 목적도 명확이 설정해야 한다.

 

데이터 수집

주제가 선정이 되면 주제에 맞는 데이터를 수집해야 한다. 데이터 수집에는 직접 수집, 이미 수집된 데이터를 활용하는 방법이 있다. 

https://www.data.go.kr/

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

https://opengov.seoul.go.kr/

 

home > 정보소통광장

home

opengov.seoul.go.kr

https://kosis.kr/index/index.do

 

KOSIS 국가통계포털

내가 본 통계표 최근 본 통계표 25개가 저장됩니다. 닫기

kosis.kr

https://data.worldbank.org/

 

World Bank Open Data | Data

Open Data Catalog Provides a listing of available World Bank datasets, including databases, pre-formatted tables, reports, and other resources.

data.worldbank.org

https://fred.stlouisfed.org/

 

Federal Reserve Economic Data | FRED | St. Louis Fed

Welcome to FRED, your trusted source for economic data since 1991. Download, graph, and track 819,000 US and international time series from 110 sources. Welcome to FRED, your trusted source for economic data since 1991. Download, graph, and track 819,000 U

fred.stlouisfed.org

https://archive.ics.uci.edu/ml/index.php

 

UCI Machine Learning Repository

Welcome to the UC Irvine Machine Learning Repository! We currently maintain 622 data sets as a service to the machine learning community. You may view all data sets through our searchable interface. For a general overview of the Repository, please visit ou

archive.ics.uci.edu

다음 과 같은 사이트를 소개를 해주고 있다.

 

데이터 처리

데이터 정제 : 가공되지 않은 초기 데이터에서 부정확한 데이터를 찾아내고 수정하거나 제거하는 절차

데이터 타이딩 : 데이터 분석을 위해 데이터를 알아보기 쉽고 처리하기 편리하도록 구조화하는 절차입니다. 보통 데이터 정제 이후에 이뤄지는데, 이 과정을 거친 데이터를 깔끔한 데이터라고 합니다.

 

데이터 분석

통계적 분석 방법, 머신러닝을 활용한 데이터 분석, 그룹별로 분석하거나 비교, 각 데이터 간의 관계 파악, 과거 데이터를 통해 미래를 예측, 시각화

 

 

정보 도출

도출된 결과에서 의미를 발견하는 단계, 검증하는 과정이 필요 잘못된 부분이 있으면 수정후 다시 실행

 

깃허브에서 파일 다운 받기

import requests

# 깃허브의 파일 URL
url = 'https://github.com/wikibook/python-for-data-analysis-rev/raw/master/readme.txt'

# URL에 해당하는 파일을 내려받음
r = requests.get(url)

# 파일을 저장할 폴더와 파일명을 지정
file_name = 'C:/myPyCode/readme.txt'

# 내려받은 파일을 지정한 폴더에 저장
with open(file_name, 'wb') as f:
    f.write(r.content)
    
# 파일 확인
import os
os.path.isfile(file_name)
# True

깃허브에서 파일을 다운받을 때 주의할 점은 해당 파일 페이지에서 Raw버튼에 마우스 오른쪽 버튼을 클릭해서 링크 주소 복사한 url을 가져와야 한다. 

 

다음은 데이터 분석전 예시 파일이다.

!type C:\myPyCode\missing_data_test.csv
연도,제품1,제품2,제품3,제품4
2015,250,150,,
2016,200,160,170,
2017,150,200,100,150
2018,120,230,130,170
2019,,250,140,

!type을 확인을 했을 때 2015년도 제품 3, 4, 2016년도 제품 4, 2019년도 제품1, 제품4가 없는 것을 확인 할 수 있다. 데이터프레임을 변경 후 보면

결측값이 들어 간 것을 볼 수가 있다. 어디에 결측치가 있는지 알 고 싶으면

df.isnull().sum()
# 제품1    1
# 제품2    0
# 제품3    1
# 제품4    3
# dtype: int64

결측치 처리

1. 결측치가 있는 행이나 열 제거

2. 결측치 채우기

 

결측치 제거

# 결측치 제거(index 제거)
df.drop(index = [2019])

# 열 제거
df.drop(columns=['제품3', '제품4'])

# 열, 행 제거
df.drop(index = [2018, 2019], columns['제품3', '제품4']

# 결측값 있는 데이터 모두 제거
df.dropna()

# subset=['제품1'] 제품1 컬럼에 axis = 0, 행을 제거 한다.
df.dropna(axis=0, subset=['제품1'])

-> 제품1에 2019년도는 결측값이 있었는데 제거가 된 것을 알 수 있다.

 

# 결측값이 있는 열 제거
df.dropna(axis=1)

결측값 없는 제품2빼고 다 제거가 된 것을 알 수 있다.

# 2015년도에 있는 데이터 중 결측값 제거
df.dropna(axis = 1, subset = [2015])

# 2016, 2019년도에 있는 데이터 중 결측값 제거
df.dropna(axis = 1, subset = [2016, 2019])

데이터 채우기

# 결측값 0으로 대체
df.fillna(0)

# 결측값 뒤에 있는 값으로 대체
df.fillna(method='bfill')

# 결측값을 전에 있는 값으로 대체
df.fillna(method='ffill')

# 직접 대체
values = {'제품1': 100,  '제품4': 400}
df.fillna(value=values)

'Python > 프로젝트' 카테고리의 다른 글

실전 데이터 분석 프로젝트(3)  (0) 2023.03.24
실전 데이터 분석 프로젝트(2)  (0) 2023.03.22
wine_modeling(1)  (0) 2023.03.05
Wine_EDA  (0) 2023.02.22
Human Activity Recognition  (1) 2022.10.06