ความครบถ้วนสมบูรณ์

การทำความสะอาดข้อมูลใน Python

Adel Nehme

VP of AI Curriculum, DataCamp

ข้อมูลที่หายไปคืออะไร?

แทนได้ด้วย NA, nan, 0, . ...

 

ข้อผิดพลาดทางเทคนิค

ข้อผิดพลาดจากมนุษย์

การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

import pandas as pd
airquality = pd.read_csv('airquality.csv')
print(airquality)
            Date  Temperature  CO2
987   20/04/2004         16.8  0.0
2119  07/06/2004         18.7  0.8
2451  20/06/2004        -40.0  NaN
1984  01/06/2004         19.6  1.8
8299  19/02/2005         11.2  1.2
...      ...             ...   ...
การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

import pandas as pd
airquality = pd.read_csv('airquality.csv')
print(airquality)
            Date  Temperature  CO2
987   20/04/2004         16.8  0.0
2119  07/06/2004         18.7  0.8
2451  20/06/2004        -40.0  NaN   <--
1984  01/06/2004         19.6  1.8
8299  19/02/2005         11.2  1.2
...      ...             ...   ...
การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

# Return missing values
airquality.isna()
       Date  Temperature    CO2
987   False        False  False
2119  False        False  False
2451  False        False   True
1984  False        False  False
8299  False        False  False
การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

# Get summary of missingness
airquality.isna().sum()
Date             0
Temperature      0
CO2            366
dtype: int64
การทำความสะอาดข้อมูลใน Python

Missingno

แพ็กเกจที่มีประโยชน์สำหรับการวิเคราะห์และแสดงภาพข้อมูลที่หายไป

import missingno as msno
import matplotlib.pyplot as plt

# Visualize missingness msno.matrix(airquality) plt.show()
การทำความสะอาดข้อมูลใน Python

การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

# Isolate missing and complete values aside
missing = airquality[airquality['CO2'].isna()]
complete = airquality[~airquality['CO2'].isna()]
การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

# Describe complete DataFramee
complete.describe()
       Temperature          CO2
count  8991.000000  8991.000000
mean     18.317829     1.739584
std       8.832116     1.537580
min      -1.900000     0.000000
...      ...        ...
max      44.600000    11.900000
# Describe missing DataFramee
missing.describe()
       Temperature  CO2
count   366.000000  0.0
mean    -39.655738  NaN
std       5.988716  NaN
min     -49.000000  NaN
...      ...        ...
max     -30.000000  NaN
การทำความสะอาดข้อมูลใน Python

ตัวอย่างข้อมูลคุณภาพอากาศ

# Describe complete DataFramee
complete.describe()
       Temperature          CO2
count  8991.000000  8991.000000
mean     18.317829     1.739584
std       8.832116     1.537580
min      -1.900000     0.000000
...      ...        ...
max      44.600000    11.900000
# Describe missing DataFramee
missing.describe()
       Temperature  CO2
count   366.000000  0.0
mean    -39.655738  NaN   <--
std       5.988716  NaN
min     -49.000000  NaN   <--
...      ...        ...
max     -30.000000  NaN   <--
การทำความสะอาดข้อมูลใน Python

 

sorted_airquality = airquality.sort_values(by = 'Temperature')
msno.matrix(sorted_airquality)
plt.show()

การทำความสะอาดข้อมูลใน Python

 

sorted_airquality = airquality.sort_values(by = 'Temperature')
msno.matrix(sorted_airquality)
plt.show()

การทำความสะอาดข้อมูลใน Python

ประเภทของข้อมูลที่หายไป

การทำความสะอาดข้อมูลใน Python

ประเภทของข้อมูลที่หายไป

การทำความสะอาดข้อมูลใน Python

ประเภทของข้อมูลที่หายไป

การทำความสะอาดข้อมูลใน Python

ประเภทของข้อมูลที่หายไป

การทำความสะอาดข้อมูลใน Python

จัดการกับข้อมูลที่หายไปอย่างไร?

วิธีพื้นฐาน:

  1. ลบข้อมูลที่หายไป
  2. Impute ด้วยค่าทางสถิติ (mean, median, mode..)

วิธีที่ซับซ้อนกว่า:

  1. Impute ด้วยอัลกอริทึม
  2. Impute ด้วยโมเดล machine learning
การทำความสะอาดข้อมูลใน Python

การจัดการข้อมูลที่หายไป

airquality.head()
         Date  Temperature  CO2
0  05/03/2005          8.5  2.5
1  23/08/2004         21.8  0.0
2  18/02/2005          6.3  1.0
3  08/02/2005        -31.0  NaN
4  13/03/2005         19.9  0.1
การทำความสะอาดข้อมูลใน Python

การลบค่าที่หายไป

# Drop missing values
airquality_dropped = airquality.dropna(subset = ['CO2'])
airquality_dropped.head()
         Date  Temperature  CO2
0  05/03/2005          8.5  2.5
1  23/08/2004         21.8  0.0
2  18/02/2005          6.3  1.0
4  13/03/2005         19.9  0.1
5  02/04/2005         17.0  0.8
การทำความสะอาดข้อมูลใน Python

การแทนค่าด้วยค่าทางสถิติ

co2_mean = airquality['CO2'].mean()
airquality_imputed = airquality.fillna({'CO2': co2_mean})
airquality_imputed.head()
          Date  Temperature       CO2
0  05/03/2005          8.5  2.500000
1  23/08/2004         21.8  0.000000
2  18/02/2005          6.3  1.000000
3  08/02/2005        -31.0  1.739584
4  13/03/2005         19.9  0.100000
การทำความสะอาดข้อมูลใน Python

มาฝึกกันเถอะ!

การทำความสะอาดข้อมูลใน Python

Preparing Video For Download...