오늘은 파이썬 결측치 처리하는 방법을 배워보았다.

 

결측치란? 

영어로 Missing Value라고 불린다. 데이터 값이 없다는 것을 의미한다.

 

1. 결측치 처리하는 방법

 

ㄱ.  .isnull()을 통해 데이터 값이 null 값인지 아닌지 확인한다.

  • .isnull()을 사용하면 불리안(True / False)로 값이 있는지 없는지 확인할 수 있다
  • 값이 있으면 False라고 표기되고, 값이 없으면 True라고 표기된다

.isnull()

null이란?  값이 0, 없다 혹은 invalid하다는 것을 의미한다.

 

 

 

ㄴ. column 안에 있는 값을 다 더하면 데이터 값이 null인지 아닌지 알 수 있다. 

  • . sum()를 추가하여 column 안의 값을 다 더하자
  • 더한 값을 null_count라는 변수에 넣어준다

.sum()

 

3. 그래프로 시각화하여 결측치가 어디에 많은지 확인하기

  • . plot()을 사용하면 그래프를 만들 수 있다

.plot()

 

 

  • . plot. + 탭을 누르면 다른 그래프 옵션을 볼 수 있다.

.plot. + tab

 

 

  • . barh()로 horizontal 바 그래프를 그린다.

.plot.barh()

 

 

 

  • 글씨 읽기가 불편하기 때문에 괄호 안에 figsize = (width, height)을 넣어 그래프의 사이즈를 조정할 것이다. 

figsize = (w, h)

 

 

 

4. 결측치 수를 reset_index를 통해 데이터 프레임으로 만들기

  • . reset_index()를 사용하면 계산한 결측치 수를 데이터 프레임으로 바꿀 수 있다.
  • 변환한 값을 df_null_count 변수에 넣어준다.

 

4.1 컬럼명 변경하기

  • df_null_count 변수에 담겨있는 컬럼(열) 이름을 '컬럼명'과 '결측치수'로 변경한다
  • .columns를 사용하면 현재 컬럼명을 확인할 수 있다.
  • .columns = ['컬럼명', '결측 치수']를 넣으면, 컬럼명이 순서대로 변경된다.

.columns

 

5. 결측치수 정렬하기

  • .sort_values(by='결측치수')를 사용하여 결측치수 컬럼을 정렬할 수 있다.
    • .sort_index를 사용하면 인덱스 값으로 정렬할 수 있다.
  • shift + tab + tab을 통해 어떤 순으로 정렬되는지 확인한다.

  • 현재 값은 오름차순(ascending=True)이기 때문에 이것을 (ascending=False)를 기입하여 내림차순으로 바꾼다.
  • 그리고 정렬한 값을, df_null_count_top 변수에 넣어준다.
  • 제일 높은 값 10개만 불러올 것이기 때문에 끝에  .head(10)를 추가하여 10개의 데이터만 넣어준다

sort_values(by=' ', ascending=False) 내림차순 정렬

 

 

6. 지점명 컬럼 불러오기 

  • df[' ']를 통해 지점명 컬럼을 불러올 수 있다. 
  • 여기서 NaN은 Not a Number의 약자로 결측치라는 의미이다.

 

 

  • .tolist() 를 사용하여 df_null_count_top변수를 '컬럼명'리스트형태로 만들어 drop_columns 라는 변수에 넣어준다

.tolist()

 

 

  • drop_columns 변수를 사용하여 해당 컬럼 정보만 데이터 프레임에서 가져오자

 

 

 

7. 결측치 제거하기

  • .drop을 사용하여 결측치를 제거한다.
  • 컬럼(열) 기준으로 제거(drop)하는 것이기 때문에 axis=1을 사용해야 한다.
  • 제거한 후, 변수에 다시 대입해주어야 적용되는 것을 잊지 말자.

 

8. 제거 결과 확인하기

  • df.info()를 사용하여 결과 확인하기
  • 컬럼 수와 용량이 줄어든 것을 확인할 수 있다

 

 

 

오늘 공부는 여기까지.. ㅎㅎ

 

 

 

 

 

 

+ Recent posts