pbj0812의 코딩 일기

[kaggle] Data Cleaning 수료과정 본문

인공지능 & 머신러닝/kaggle

[kaggle] Data Cleaning 수료과정

pbj0812 2021. 4. 18. 14:58

0. 목차 및 내용

 1) Handling Missing Values

  - NULL 이 포함된 데이터에 대한 처리

  - dropna() 를 통한 행 제외

  - dropna(axis=1) 를 통한 열 제외

  - fillna(0) 를 통한 처리

  - fillna(method='bfill', axis=0).fillna(0) 를 통한 대체 

 2) Scaling and Normalization

  - Scaling 과 Normalization 의 차이(Scaling 은 값의 범위를 바꾸는 것?, 1달러와 1엔의 예를 들었을 때 1달러는 100엔의 가치가 있음. 이때, Scaling 을 하지 않으면 1엔의 차이와 1달러의 차이는 비슷해짐. Normalization 은 데이터 분포의 형태를 바꾸는 것?)

  - mlxtend.preprocessing의 minmax_scaling() 을 통한 scaling

  - scipy 의 stats.boxcow() 를 통한 normalization

 3) Parsing Dates

  - to_datetime 을 통한 datetime으로의 형태 변경

  - dt.day 를 통한 datetime 형식에서의 일 추출

  - sns.distplot

  - Date.str.len() 을 통해 각 값의 길이를 구하고 value_counts() 를 통해 개수를 세면 데이트 형태가 다른 것이 몇 개인지 어렴풋이 나마 확인 가능

 4) Character Encodings

  - 인코딩 디코딩 관련

  - 아래 코드를 통하여 파일 형식을 알아내고 

with open("../input/kickstarter-projects/ks-projects-201801.csv", 'rb') as rawdata:
    result = chardet.detect(rawdata.read(10000))

  - 아래 코드를 통하여 파일을 읽으면 편함

kickstarter_2016 = pd.read_csv("../input/kickstarter-projects/ks-projects-201612.csv", encoding='Windows-1252')

 5) Inconsistent Data Entry

  - fuzzywuzzy 를 통한 유사한 단어 추출

  - 아래 예제를 통하여 south korea 와 가장 유사한 것을 10개 추출 가능

import fuzzywuzzy
from fuzzywuzzy import process

matches = fuzzywuzzy.process.extract("south korea", countries, limit=10, scorer=fuzzywuzzy.fuzz.token_sort_ratio)

1. 수료증

2. 참고

 - Data Cleaning

Comments