Pandas DataFrame – Menghapus Nilai NaN

Untuk menghapus data NaN digunakan method dropna().

Pertama kita import library dan data yang digunakan.

import pandas as pd

df = pd.read_csv("nba.csv")

Mari kita tampilkan dahulu data dengan method head dan tail untuk memeriksa data NaN yang ada.

df.head()
df.tail()
2	John Holland	Boston Celtics	30.0	SG	27.0	6-5	205.0	Boston University	NaN

4	Jonas Jerebko	Boston Celtics	8.0	PF	29.0	6-10	231.0	NaN	5000000.0

457	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN	NaN

Hapus data NaN dengan perintah berikut. Secara default perintah dropna() akan menghapus semua row yang mengandung nilai NaN, atau parameter how=”any”.

df.dropna()

#sama dengan perintah df.dropna(how="any")

Dapat dilihat dari image diatas, semua baris yang mengandung data NaN akan dibuang dari dataframe.

Jika Anda hanya ingin menghapus dimana seluruh isi baris mengandung nilai NaN, gunakan parameter how=”all”.

Parameter inplace=True, seperti yang sudah dibahas pada modul series, untuk menerapkan perubahan pada dataframe.

df.dropna(how="all", inplace=True)

Dapat diperhatikan pada gambar diatas, baris yang tidak seluruhnya NaN tidak dihapus.

Jika ingin menghapus seluruh kolom yang mengandung nilai NaN, gunakan parameter axis=1 (default adalah 0, atau row).

df.dropna(axis=1)
# sama dengan df.dropna(axis="columns")
Sesuai ekspektasi, kolom yang mengandung NaN di drop dari dataframe.

Parameter yang cukup penting adalah subset. Perintah dropna hanya akan melakukan drop data jika terdapat NaN pada list yang didefinisikan dalam parameter subset.

Contoh, kita ingin drop data jika pada kolom salary terdapat NaN.

df.dropna(subset=["Salary"])
Dapat dilihat pada gambar diatas, baris 4, 5, 454 dan 455 tidak didrop walaupun terdapat NaN. Untuk baris 2 dihapus karena pada kolom salary mengandung nilai NaN.

Parameter subset dapat diisi lebih dari 1 kolom. Contoh:

df.dropna(subset=["Salary", "College"])
Sharing is caring:

Leave a Comment