📖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,

Kode Lengkap
Last updated
Was this helpful?