결측치

pandas를 이용한 데이터 다루기

Maggie Matsui

Senior Content Developer at DataCamp

결측치란 무엇인가요?

Name Breed Color Height (cm) Weight (kg) Date of Birth
Bella Labrador Brown 56 25 2013-07-01
Charlie Poodle Black 43 23 2016-09-16
Lucy Chow Chow Brown 46 22 2014-08-25
Cooper Schnauzer Gray 49 17 2011-12-11
Max Labrador Black 59 29 2017-01-20
Stella Chihuahua Tan 18 2 2015-04-20
Bernie St. Bernard White 77 74 2018-02-27
pandas를 이용한 데이터 다루기

결측치란 무엇인가요?

"| Name | Breed | Color | Height (cm) | Weight (kg) | Date of Birth ||---------|-------------|-------|:-----------:|:-----------:|---------------|| Bella | Labrador | Brown | 56 | ? | 2013-07-01 || Charlie | Poodle | Black | 43 | 23 | 2016-09-16 || Lucy | Chow Chow | Brown | 46 | 22 | 2014-08-25 || Cooper | Schnauzer | Gray | 49 | ? | 2011-12-11 || Max | Labrador | Black | 59 | 29 | 2017-01-20 || Stella | Chihuahua | Tan | 18 | 2 | 2015-04-20 || Bernie | St. Bernard | White | 77 | 74 | 2018-02-27 |"

pandas를 이용한 데이터 다루기

pandas DataFrame의 결측치

print(dogs)
      name        breed  color  height_cm  weight_kg date_of_birth
0    Bella     Labrador  Brown         56        NaN    2013-07-01
1  Charlie       Poodle  Black         43       24.0    2016-09-16
2     Lucy    Chow Chow  Brown         46       24.0    2014-08-25
3   Cooper    Schnauzer   Gray         49        NaN    2011-12-11
4      Max     Labrador  Black         59       29.0    2017-01-20
5   Stella    Chihuahua    Tan         18        2.0    2015-04-20
6   Bernie  St. Bernard  White         77       74.0    2018-02-27
pandas를 이용한 데이터 다루기

결측치 파악하기

dogs.isna()
    name  breed  color  height_cm  weight_kg  date_of_birth
0  False  False  False      False       True          False
1  False  False  False      False      False          False
2  False  False  False      False      False          False
3  False  False  False      False       True          False
4  False  False  False      False      False          False
5  False  False  False      False      False          False
6  False  False  False      False      False          False
pandas를 이용한 데이터 다루기

결측치 존재 여부 확인하기

dogs.isna().any()
name             False
breed            False
color            False
height_cm        False
weight_kg         True
date_of_birth    False
dtype: bool
pandas를 이용한 데이터 다루기

결측치 개수 세기

dogs.isna().sum()
name             0
breed            0
color            0
height_cm        0
weight_kg        2
date_of_birth    0
dtype: int64
pandas를 이용한 데이터 다루기

결측치를 그래프로 시각화하기

import matplotlib.pyplot as plt

dogs.isna().sum().plot(kind="bar") plt.show()

dogs 데이터 세트 각 열의 결측치 개수를 세는 막대 그래프입니다. 모든 막대 그래프는 0에 위치하고 있으나, weight만 두 개의 결측치가 있습니다.

pandas를 이용한 데이터 다루기

결측치 제거하기

dogs.dropna()
      name        breed  color  height_cm  weight_kg date_of_birth
1  Charlie       Poodle  Black         43       24.0    2016-09-16
2     Lucy    Chow Chow  Brown         46       24.0    2014-08-25
4      Max     Labrador  Black         59       29.0    2017-01-20
5   Stella    Chihuahua    Tan         18        2.0    2015-04-20
6   Bernie  St. Bernard  White         77       74.0    2018-02-27
pandas를 이용한 데이터 다루기

결측치 대체하기

dogs.fillna(0)
      name        breed  color  height_cm  weight_kg date_of_birth
0    Bella     Labrador  Brown         56        0.0    2013-07-01
1  Charlie       Poodle  Black         43       24.0    2016-09-16
2     Lucy    Chow Chow  Brown         46       24.0    2014-08-25
3   Cooper    Schnauzer   Gray         49        0.0    2011-12-11
4      Max     Labrador  Black         59       29.0    2017-01-20
5   Stella    Chihuahua    Tan         18        2.0    2015-04-20
6   Bernie  St. Bernard  White         77       74.0    2018-02-27
pandas를 이용한 데이터 다루기

연습해봅시다!

pandas를 이용한 데이터 다루기

Preparing Video For Download...