새소식

AIVLE School DX 3기

[에이블스쿨 3주차] 1차 미니프로젝트 1일차🐛

  • -
728x90
반응형

미니프로젝트란?

배운것에 대해 주도적으로 실습을 하는 것

에이블스쿨을 진행하면 6개의 미니프로젝트와 1개의 빅프로젝트를 진행하게 됩니다!
에이블스쿨을하면서 배운 지식을 바탕으로 실제 사례에 어떻게 접목을 시켜나가지는의 과정을 배우는 것 입니다

DX의 1차 미니프로젝트는 별도의 과제, 발표 없이 실습 위주로 진행이 되었습니다😊


1일차는 정말 이런 데이터도 존재한다고?! 싶은 데이터로 진행했습니다.

바로!
바로!

모기 예보제 💉

(모기 아이콘이 징그러워 비슷한 아이콘으로 대체 합니다)
💾 모기 예보제 https://news.seoul.go.kr/welfare/mosquito

한글파일 불러오기

encoding='cp949'

    • 파이썬에서 csv파일을 저장하면 utf-8이 default
    • 공공데이터의 경우 cp949 또는 ecu-kr방식으로 인코딩이 되어 있기때문에 변환이 필요
      df = pd.read_csv('불러올 csv파일.csv'), encoding='cp949'
       

⭐전처리

전처리는 왜 필요할까?🤔
특징 추출 (feature extraction)을 통하여 문제를 좀 더 쉽게 정의함으로써 기존 보다 좀 더 쉽게 문제를 해결할 수 있다!

1. 결측치, 중복값 제거

  • 결측치 혹은 팍 튀는 값 등을 제거
    .loc[lambda x : x > 1] : 하나보다 많은 값 찾기
    .drop.na : 결측치 제거
    .drop.duplicates : 중복값 제거
    .reset_index(drop = True) : 인덱스 순서 정리
    .to_date : object로 불러와진 날짜를 datetime으로 변경해줌

2. 스케일링

  • 범위가 제각각인 데이터 분포 및 범위를 동일한 기준으로 조정
  • ⭐아웃라이어 제거
# 2 ~ 50 사이의 데이터가있어요 이걸 0 ~ 100 범위로 나눠주고 싶어요
# 2 ~ 50 사이의 데이터에 최소값(2) 를 전부 빼요 
# 0 ~ 48 범위의 데이터가 되겠죠
# 여기다 최대값(48)으로 전부 나눠요
# 0 ~ 1범위의 데이터가 됩니다
# 여기다 100을 곱해요
# 0~100 범위의 데이터가 탄생
test2016['scaled'] = (test2016['모기지수(주거지)'] - test2016['모기지수(주거지)'].min())/(test2016['모기지수(주거지)'].max()-test2016['모기지수(주거지)'].min()) * 100

3. 이상치 제거

  • plot으로 차트를 그린 후 팍 튀는 값 제거 혹은 수정
    여름인데 모기지수가 0이거나 겨울인데 모기지수가 0이 아니면 수정

 

데이터 합치기

  • 전처리가 끝난 데이터를 다시 합쳐준다

concat : 일렬로 쭉 합쳐줌
merge : 기준을 가지고 합쳐줌

느낀점

처음 받아보는 날것(?)의 데이터에 에이블러 모두가 당황을 했는데, '문제', '데이터', '도메인 기본 정보', '문제 해결 가이드'가 제공되어 있어서 안심했습니다. 모르는 부분에서도 튜터분들께서도 실시간으로 1:1 질문을 받고 답변을 해주셔서 무리없이 진행할 수 있었습니다👍

특히나 전처리를 어떻게 해야하냐가 막막했는데, 어느 부분에서 이상치가 있고 비슷한 부분을 에이블러 각자 생각해서 처리할 수 있어서 좋았던 것 같습니다. 모두에게 익숙한 모기 데이터의 경우 계절마다 모기의 활용해 이상치를 제거할 수 있었습니다. 여름에 모기가 많고, 겨울에 모기 없는 이 정보도 하나의 도메인 정보가 될 수 있었던 것 같습니다.

맞고 틀림을 판단하기보다, 어떤 데이터가 필요한가에 따라 전처리와 스케일링 과정을 진행하는 것이 중요했던 것 같습니다.

2,3일 차는 팀원들과 함께 진행을 한다고하니 더 기대되네요~~

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.