Materi
Sel kosong di CSV dibaca sebagai NaN. Perbandingan biasa tidak mengenali NaN — NaN dibandingkan dengan dirinya sendiri menjawab False — jadi dipakai .isna() yang menghasilkan True di setiap sel kosong. Memeriksa sel kosong adalah langkah pertama pada data isian manusia: formulir, daftar hadir, dan ekspor sistem lama.
print(pel.isna().sum()) # berapa sel kosong per kolom.fillna(nilai) mengganti sel kosong. Dengan dict, setiap kolom dapat diberi pengganti sendiri. .dropna() membuang seluruh baris yang punya sel kosong, dan argumen subset membatasinya pada kolom tertentu saja.
terisi = pel.fillna({"kota": "Tidak diisi", "belanja": 0})
bersih = pel.dropna()Contoh di luar latihan: tabel 1200 pelanggan dengan kolom nomor_hp kosong di 80 baris. Untuk kiriman pesan, baris itu dibuang dengan dropna yang subsetnya kolom nomor_hp saja; untuk laporan jumlah pelanggan, baris itu tetap dihitung dan kolomnya diisi keterangan Tidak diisi.
Kesalahan umum: mengisi kolom angka dengan 0 lalu melaporkan rata-ratanya. Rata-rata turun karena baris kosong ikut dihitung sebagai nol, padahal .mean() sendiri sudah melewati NaN. Kesalahan kedua: menyaring sel kosong dengan tanda sama dengan None, yang menghasilkan tabel kosong tanpa pesan error.