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
| Bagian | Keterangan |
|---|---|
NaN | Sel 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
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_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 |
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
| nama | dept_id | atasan_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
len(karyawan)menghitung semua baris: 8.karyawan['dept_id'].count()menghitung yang terisi saja: 7. Selisihnya adalah sel kosong.- 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
== Noneatau== ''. Hasilnya selalu salah; pakaiisna(). - Mengisi semua sel kosong dengan 0 tanpa berpikir. Kadang kosong artinya "belum ada data", bukan nol.
variabel, list, def