Missing values

Data Manipulation with pandas

Maggie Matsui

Senior Content Developer at DataCamp

What's a missing value?

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
Data Manipulation with pandas

What's a missing value?

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
Data Manipulation with pandas

Missing values in pandas DataFrames

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
Data Manipulation with pandas

Detecting missing values

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
Data Manipulation with pandas

Detecting any missing values

dogs.isna().any()
name             False
breed            False
color            False
height_cm        False
weight_kg         True
date_of_birth    False
dtype: bool
Data Manipulation with pandas

Counting missing values

dogs.isna().sum()
name             0
breed            0
color            0
height_cm        0
weight_kg        2
date_of_birth    0
dtype: int64
Data Manipulation with pandas

Plotting missing values

import matplotlib.pyplot as plt

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

A bar plot counting the number of missing values in each column of the dogs dataset. All bars are at zero, except weight, which has two missing values.

Data Manipulation with pandas

Removing missing values

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
Data Manipulation with pandas

Replacing missing values

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
Data Manipulation with pandas

Let's practice!

Data Manipulation with pandas

Preparing Video For Download...