본문 바로가기

Work & Study

[데이터 분석 스터디] 데이터 전처리 (pandas.DataFrame) _null 값

데이터 분석을 하기 위해 우선 현재 데이터를 살펴보고 다듬어 주는 과정이 필요합니다. 

 

1. 데이터 탐색

 - 데이터는 데이터프레임 형식이라고 가정하면 우선 어떤 데이터가 있는지 살펴보기 위해 사용하는 함수를 소개하겠습니다. 

 

1) .head()를 사용해서 위에서부터 5개 행 데이터 값을 봅니다. 표 형태로 데이터 일부를 본다고 생각하면 됩니다. 

head() 예시

2) .info()를 사용하면 어떤 column(열) 데이터를 가지고 있는지, 그리고 null이 아닌 데이터가 몇 개 있는지, datatype은 무엇인지 알려줍니다.

info() 예시

3) .describe()를 사용하면 각 열의 통계 정보(count, mean, std, min, max, ...)를 알려줍니다. 해당 정보를 통해서 데이터 값이 어떻게 치우쳐 있는지 알 수 있습니다. 

describe() 예시

함수(head, info, describe) 중  필요에 따라서 적절한 방법을 사용해서 데이터를 한번 살펴보면 좋습니다. 

 

2. 데이터 전처리

1) 가장 먼저 null 데이터가 있는지 확인합니다.  

  - info 함수를 통해서 not-null 값의 개수와 전체 데이터 개수를 비교해서 파악할 수도 있고 다른 함수를 사용해서 쉽게 확인할 수 있습니다. .isnull().sum() 을 사용하는 겁니다. 

isnull().sum() 사용 예시

2) null 값을 버리거나 다른 값으로 바꿔줍니다. 
    - null 이 포함된 행 값을 버릴 때는 .dropna(axis = 1) 함수를 사용하면 됩니다. 

    - null 값을 0으로 바꾸는 경우 .fillna(0) 을 사용하면 됩니다. 0 말고 다른 값을 채울 수도 있습니다. 

 

※ 주의: 행을 버리거나 null을 0으로 바꾸는 경우 모델 학습에 어떠한 영향을 주게 될지 고민해 봐야 됩니다. null 값이 너무 많은 열 전체를 사용하지 않거나, null을 평균값으로 대체하는 경우도 있는데요. 어떤 방법이 적합한지는 고민이 필요하고 아마도 경험에 의한 know-how가 필요하지 않을까 싶습니다.