📖Praktikum 1

Pra Pengolahan Data - Data Terstruktur

Data Imputation

Pada praktikum ini kita akan mencoba melakukan data imputation terhadap data yang hilang (missing value). Dataset yang digunakan adalah dataset Titanic.

⬇️ Download ⬇️

Langkah 1 - Load Data

Import library yang dibutuhkan kemudian, load data kedalam DataFrame Pandas.

import pandas as pd

data = 'Training-Dataset.csv' # path dataset
df = pd.read_csv(data) # load dataset

jika menggunakan colab, kita harus upload datanya dulu ke colab, baru kemudian bisa diakses


from google.colab import files
uploaded = files.upload() # upload dataset
import pandas as pd
import io

df = pd.read_csv(io.BytesIO(uploaded['NamaFile.format'])) # load dataset

Tampilkan data teratas dengan perintah df.head()

df.head()

Maka akan muncul tampilan seperti dibawah ini

Langkah 2 - Pengecekan Data

Lakukan pengecekan informasi mengenai data dengan menggunakan df.info()

df.info()

Perhatikan hasil dari perintah yang telah dijalankan.

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  891 non-null    int64  
 1   Survived     891 non-null    int64  
 2   Pclass       891 non-null    int64  
 3   Name         891 non-null    object 
 4   Sex          891 non-null    object 
 
 6   SibSp        891 non-null    int64  
 7   Parch        891 non-null    int64  
 8   Ticket       891 non-null    object 
 9   Fare         891 non-null    float64
  
  
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB

Dari df.info() kita dapat mengetahui jumlah data untuk setiap kolom. Selain itu, kita mengetahui bahwa,

  • "Age" berjenis float64

  • "Cabin" berjenis object

  • "Embarked" berjenis object

Pada Pandas, object sering kali mewaliki tipe data string. Kita harus cermat dalam hal ini. Hal ini berkaitan dengan teknik imputasi yang akan kita gunakan nantinya.

Selanjutnya, untuk lebih mengetahui jumlah data yang hilang untuk setiap kolom, gunakan perintah,

df.isnull().sum()

Didapatkan informasi seperti berikut,

PassengerId      0
Survived         0
Pclass           0
Name             0
Sex              0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          687
Embarked         2
dtype: int64

Dari informasi ini, kita dapat mengetahui data yang hilang sejumlah,

  • 177 data "Age"

  • 687 data "Cabin"

  • 2 data "Embarked"

Langkah 3 - Imputasi

Pada langkah ini kita akan melakukan imputasi terdapat data yang hilang pada "Age", "Cabin", dan "Embarked".

Strategi yang akan kita gunakan adalah,

  • "Age" --> Dikarenakan "Age" adalah data nominal, maka kita akan menggunakan strategi mean.

  • "Cabin" --> "Cabin" merupakan informasi terkait dengan nomor kabin penumpang. Disini kita akan berasumsi bahwa, seluruh penumpang yang tidak memiliki nomor kabin, merupakan penumpang yang tinggal di dek-dek kapal. Sehingga kita akan mensubtitusi data yang hilang dengan informasi "DECK".

  • "Embarked" --> "Embarked" merupakan informasi lokasi embarkasi penumpang. Hanya ada 2 data yang hilang disini. Dikarenakan data merupakan data nominal, maka kita dapat menggunakan modus (mode) untuk mensubtitusi data yang hilang.

# Age - mean
df['Age'].fillna(value=df['Age'].mean(), inplace=True)

# Cabin - "DECK"
df['Cabin'].fillna(value="DECK", inplace=True)

# Embarked - modus
df['Embarked'].fillna(value=df['Embarked'].mode, inplace=True)

Langkah 4 - Validasi Hasil

Lakukan pengecekan kembali dengan df.info(). Selanjutnya, kita juga dapat memastikan kembali apakah nilai yang disikan sudah benar dengan melakukan pencekan data secara langsung. Hasil dari proses imputasi adalah sebagai berikut,

Hasil Proses Imputasi

Kode Lengkap

Last updated

Was this helpful?