NaN: sel kosong di Pandas

NaN (Not a Number) adalah tanda sel kosong di Pandas, seperti sel kosong di Excel.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Di Excel, sel kosong ya kosong saja. Di Pandas, sel kosong ditandai dengan tulisan NaN supaya kamu sadar ada data yang hilang.

Kabar baiknya, fungsi hitung seperti jumlah dan rata-rata otomatis melewati sel NaN, jadi hasilnya tidak rusak. Tapi kamu tetap perlu tahu ada berapa yang kosong.

Sintaks

df['kolom'].isna()      # True kalau kosong
df['kolom'].count()     # jumlah sel yang terisi
BagianKeterangan
NaNSel kosong. Bukan angka 0 dan bukan teks kosong.
isna()Mengecek sel mana yang kosong.
count()Menghitung sel yang terisi saja.

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 NaN

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
nan.py
print('Jumlah baris          :', len(karyawan))
print('dept_id yang terisi   :', karyawan['dept_id'].count())
print('Rata-rata gaji        :', karyawan['gaji'].mean())
karyawan[['nama', 'dept_id', 'atasan_id']]
Jumlah baris          : 8
dept_id yang terisi   : 7
Rata-rata gaji        : 8700000.0

Hasil 8 baris × 3 kolom

namadept_idatasan_id
Andi Pratama 3 NaN
Bunga Lestari 1 NaN
Candra Wijaya 3 1
Dewi Anggraini 2 6
Eko Saputra 1 2
Fajar Nugroho 2 NaN
Gita Permata 3 1
Hendra Gunawan NaN NaN

Tabel punya 8 baris, tapi dept_id hanya terisi 7. Sel kosong tampil sebagai NaN dan tidak ikut dihitung oleh count(), sum(), atau mean().

Cara kerjanya, langkah demi langkah

  1. len(karyawan) menghitung semua baris: 8.
  2. karyawan['dept_id'].count() menghitung yang terisi saja: 7. Selisihnya adalah sel kosong.
  3. Pada tabel, sel kosong tampil sebagai NaN berwarna abu-abu.

Dipakai untuk apa di kantor?

  • Mengecek kelengkapan data sebelum membuat laporan.
  • Memahami kenapa rata-rata atau jumlah tidak sesuai dugaan.

Kesalahan yang sering terjadi

  • Mencari sel kosong dengan == None atau == ''. Hasilnya selalu salah; pakai isna().
  • Mengisi semua sel kosong dengan 0 tanpa berpikir. Kadang kosong artinya "belum ada data", bukan nol.
Progres bab Kenalan dengan Pandas 0/6 dipelajari
Lanjut: variabel, list, def

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