ML에서 데이터 타입들에 따라 다르게 전처리 한다.

 

예를 들어 범주형과 수치형으로 나눌수 있다.

범주형 수치형
숫자값으로는 의미를 안가짐 숫자값으로 의미를 가짐
소형, 중형, 대형 170cm, 164.5cm , ...

위와 같이 확실히 다른것을 할수 있다..

주로 데이터들이 범주형은 pandas에서 dtypes 함수를 호출했을때 결과값은 object이고

수치형은 float 등 숫자형으로 나올것이다. ( 물론 dataFrame.info() 와 dataFrame.describe() 를 통해 정확히 분류해야함 )

 

그러면 전처리시 범주형과 수치형을 나눠서 해야하는데 인덱스별로 즉 컬럼별로 다 코딩을 해야하는것은 아니다.

 

범주형 컬럼, 수치형 컬럼을 미리 구분해두고 저장해둔다음에 반복문을 돌려두면 된다.

 


범주형, 수치형 column 나누는 방법

 

나누기 위해서 우선 pandas에서 지원하는 dtypes에 대해서 알아볼 필요가 있다.

 

dataFrame.dtypes 의 결과값의 타입은 Series형태이다. 즉 column이 하나인 dataFrame으로 나온다고 봐도 상관없다.

 

Series 로 나오는것을 확인 할 수 있다.

 

 

그러면 이제 data라는 이름의 dataFrame에는 어떤 column이 들어있는지 확인하면 아래와 같다.

 

 

총 2개의 object 타입이 있고 나머지는 int와 float로 구성되어있다.

int나 float형에도 범주형이 있을수 있으므로 describe 함수로 좀더 자세히 확인해보자

 

column의 이름에서도 알수는 있지만 각 수치 그자체로 의미를 가지므로 범주형이라 할 수 없다.

 

그러면 이제 범주형과 수치형을 직접 나눠서 저장하는 방법도 있지만 자동으로 해보는 코드를 살펴본다.

 

아래의 코드를 먼저 확인해보면 float, int, object인지 판별하는 간단한 코드이다.

 

코드 결과

위 사진을 보면 Object를 판별 하는 방법은 'O' 인지 확인하면 된다.

 

그럼 아래의 코드들로 컬럼들을 구분할 수 있다.

 

+ Recent posts