티스토리 뷰



 

여러분, 안녕하세요~?

이번 포스팅에서는 Pre-processing의 세 번째 단계인 결측값 처리 (1) 과정을 실습 해보려고 합니다 !

 


 

데이터 전처리 과정에서 가장 중요하게 다뤄야 하는 값 중 하나인 결측값 ( Missing Value ) 이란,

데이터 입력 과정에서 누락되어 데이터가 존재하지 않는 값으로 NaN, null으로 표시됩니다.

 

 

이러한 결측값은 분석 결과의 신뢰도에 직접적인 영향을 주기 때문에

데이터 분석 수집한 데이터를 가공하는 전처리 과정이 반드시 필요한데요 !

 

 

 

그만큼 결측값 처리 과정은 전처리의 꽃 ! 전처리의 핵심 ! 이기 때문에

결측값의 유형에 따라 이번 포스팅과 다음 포스팅 두 시간에 걸쳐서 알아보려고 합니다 :)

 

이번 포스팅에서는 문자형 결측값 처리를 알아보고, 다음 포스팅에서는 숫자형 결측값 처리를 학습 해보겠습니다 !

 


 

자 ! 그러면 이제 본격적으로 [Pre-processing] Missing Value Processing (1) String 실습을 시작해보도록 할까요~?

 


 


 


 

■ Data Preparation

 

문자형 ( String ) 결측값 : gender 변수 - 성별

 

[ 09_1_py_bmi .csv ] 

09_1_py_bmi.csv
0.01MB

 


 

■ Data Load     ( Load 함수 )

 

0. Load 함수의 경로를 업로드한 데이터인 09_1_py_bmi 로 지정하여 실행합니다.

      gender 변수인 성별 정보의 결측값 처리 필요 !

 


 

■ Pre-processing 1     ( String Summary 함수 )

 

▶▷ String Summary 함수를 이용하여 문자 타입의 데이터 탐색을 통해 이상값을 확인하고, 원인을 파악하여 보정 기준 정의하기 ◁◀

 

1. 새로운 함수를 생성하기 위해서 Select Function 팝업창이 뜨면, String Summary 함수 버튼을 클릭하고

   Load 함수로부터 Input 값을 받기 위해서 연결합니다.  

 

2. String 타입의 결측값을 확인하기 위해서 String Summary 함수의 Properties Panel에서 Input Columns로 gender (성별) 변수를 선택하고 Run 버튼을 클릭합니다.

 

3. String Summary 함수의 두 번째 결과 테이블인 gender 변수 관련 기초 통계량을 확인하기 위해서 Chart Settings 버튼을 클릭하여 Data 탭의 Data Source로 String Summary (count_table) 을 선택합니다.

 

4. Output Panel을 통해 gender (성별) 변수의 구분자인 F ( : 여 ), M ( : 남 ) 에 대한 대문자, 소문자, 그리고 오입력된 문자 G, N, n, 공백 등이 포함되어 있는 것을 확인할 수 있습니다.

Problem Solution
G ( 대문자만 존재 ), 공백 오입력   제거 Filter 함수
f, m, n 소문자     대문자로 변환 Capitalize Variable 함수
N ( 대문자 소문자 모두 존재 ) 오입력    M값으로 변환 Add Column 함수

 

 


 

■ Pre-processing 2     ( Filter 함수 )

 

▶▷ Filter 함수를 이용하여 보정기준에 따라 오입력 값 제거하기 ◁◀

Problem  ① Solution  ①
G ( 대문자만 존재 ), 공백 오입력   제거 Filter 함수

 

1. 새로운 함수를 생성하기 위해서 Select Function 팝업창이 뜨면, Filter 함수를 클릭합니다.

 

2. Filter 함수에서 String 타입의 gender (성별) 변수의 결측값인 문자열 G와 공백 문자를 함께 제거하기 위해서 

   Filter 팝업창이 뜨면, Condition 옵션에서 And를 선택하고, gender 컬럼에 대해서 Not in ['G', '']를 설정한 후,

   Run 버튼을 클릭합니다.

gender not in ['G', '']

 

 

3. Filter 함수의 실행 결과 gender 변수에서 G와 공백 문자가 제거된 것을 확인할 수 있습니다.

 


 

■ Pre-processing 3     ( Capitalize Variable 함수 )

 

▶▷ Capitalize Variable 함수로 대소문자 변환하기 ◁◀

Problem  ② Solution  ②
f, m, n 소문자   대문자로 변환 Capitalize Variable 함수

 

1. 새로운 함수를 생성하기 위해서 Select Function 팝업창이 뜨면, Capitalize Variable 함수를 클릭합니다.

 

2. Capitalize Variable 함수에서 String 타입의 gender (성별) 변수의 소문자를 대문자로 변환하기 위해서

   Input Columns로 gender을 선택하고 Replace Mode로 Uppercase를 선택한 후 Run 버튼을 클릭합니다.

 

3. Capitalize Variable 함수의 실행 결과 새로운 변수 gender_upper 컬럼이 생성되고 gender 변수가 모두 대문자로 변환된 것을 확인할 수 있습니다.

 


 

 

■ Pre-processing 4     ( Add Column 함수 )

 

▶▷ Capitalize Variable 함수로 대소문자 변환하기 ◁◀

Problem  ③ Solution  ③
N ( 대문자 소문자 모두 존재 ) 오입력   M값으로 변환 Add Column 함수

 

1. 새로운 함수를 생성하기 위해서 Select Function 팝업창이 뜨면, Add Column 함수를 클릭합니다.

 

2. Add Column 함수에서 String 타입의 gender (성별) 변수의 결측값인 문자열 N을 M값으로 변환하기 위해서

 

   Add Column 팝업창이 뜨면,

   -   New Column Name   :   gender_replace

   -   New Column Type     :  String

   -   Expression Type         :  SQLite

 

   새로운 컬럼을 생성한 후, 다음과 같이 조건문을 입력하여 Run 버튼을 클릭합니다.

 

   -   Condition   :   gender_upper = 'M' : M

                          gender_upper = 'N' : M

                          gender_upper = 'F' : F

   -   ( else )       :   gender_upper

Expression Type: sqlite
Column Name: gender_replace

gender_upper='M'
    => M
gender_upper='N'
    => M
gender_upper='F'
    => F
Else
    => gender_upper

 

 

3. Add Column 함수의 실행 결과 새로운 변수 gender_replace 컬럼이 생성되고 gender 변수의 N이 M으로 변환된 것을 확인할 수 있습니다.

 


 

■ Pre-processing 5     ( String Summary 함수 )

 

▶▷ String Summary 함수로 보정작업에 대한 검증을 수행하고, 새로운 데이터로 저장하기 ◁◀

 

1. 새로운 함수를 생성하기 위해서 Select Function 팝업창이 뜨면, String Summary 함수 버튼을 클릭하고

   Add Column 함수로부터 Input 값을 받기 위해서 연결합니다.  

 

2. 보정된 String 타입의 결측값을 확인하기 위해서 String Summary 함수의 Properties Panel에서 Input Columns로 보정된 gender_replace (성별) 변수를 선택하고 Run 버튼을 클릭합니다.

 

3. String Summary 함수의 두 번째 결과 테이블인 gender_replace 변수 관련 기초 통계량을 확인하기 위해서 Chart Settings 버튼을 클릭하여 Data 탭의 Data Source로 String Summary (count_table) 을 선택합니다.

 

4. Output Panel을 통해 보정된 gender_replace (성별) 변수의 구분자가 F ( : 여 ), M ( : 남 ) 2개로만 표현되는 것을 확인할 수 있습니다.

 


 

지금까지 ~ 전처리 - 결측값 처리(1) 문자형 결측값 처리 튜토리얼 실습이었습니다 !

※  Tutorial  →  [ Pre-processing ]  Missing Value Processing (1)

  

감사합니다 :)

 


https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/09_1_py_Missing_String_Imputation?type=insight

 

Brightics Studio

 

www.brightics.ai


 

 

댓글