isna() di Pandas

Mendeteksi sel kosong (NaN/None). Dipakai dengan sum() untuk menghitung sel kosong per kolom.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Sel kosong bisa membuat hitungan meleset. isna() menandai setiap sel kosong dengan True, dan karena True dihitung 1, sum() langsung memberi jumlah sel kosong tiap kolom.

Sintaks

df.isna().sum()
df[df['kolom'].isna()]

df adalah nama DataFrame (tabel) yang sedang diolah. Contoh di bawah memakai import pandas as pd dan import numpy as np, yang sudah disiapkan otomatis.

Contoh isna()

Data contoh: karyawan (sudah tersedia sebagai DataFrame)

DataFrame karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NaN
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NaN
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NaN
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NaN Medan 5500000 2024-04-02 NaN
isna.py
print(karyawan.isna().sum())
karyawan[karyawan['dept_id'].isna()]
id           0
nama         0
dept_id      1
kota         0
gaji         0
tgl_masuk    0
atasan_id    4
dtype: int64

Hasil 1 baris × 7 kolom

idnamadept_idkotagajitgl_masukatasan_id
7 8 Hendra Gunawan NaN Medan 5500000 2024-04-02 NaN

Kolom abu-abu adalah index, yaitu nomor baris asli di tabel. Nomornya tidak urut karena ada baris yang disaring atau diurutkan. Apa itu index?

Kolom dept_id kosong 1 dan atasan_id kosong 4. Baris yang dept_id-nya kosong adalah Hendra Gunawan.

Cara kerjanya, langkah demi langkah

  1. isna() mengubah setiap sel menjadi True (kosong) atau False (terisi).
  2. sum() menjumlahkan True per kolom.
  3. karyawan[karyawan['dept_id'].isna()] mengambil baris yang dept_id-nya kosong.

Dipakai untuk apa di kantor?

  • Audit kualitas data sebelum analisis.
  • Mencari pelanggan tanpa nomor HP atau transaksi tanpa kategori.

Kesalahan yang sering terjadi

  • Mengecek kosong dengan == None atau == np.nan. Hasilnya selalu False; pakai isna().
  • Teks kosong "" tidak dianggap NaN. Ubah dulu dengan replace('', np.nan).
Progres bab Membersihkan Data 0/5 dipelajari
Lanjut: fillna()

Langkah berikutnya

Dari paham fungsi, ke siap kerja.

Belajar Python bareng mentor

Tahu fungsinya itu awal. Mengolah data kantor sampai jadi insight, itu skill.

Private Class Python & SQL untuk Data: dari Pandas dasar sampai membersihkan, merekap, dan memvisualisasikan data studi kasus kerja, dengan jadwal yang menyesuaikan kamu.

Lihat Private Class