Materi
Kueri yang dijalankan sekali menjawab pertanyaan hari ini; pemeriksaan kualitas harus bisa diulang setiap kali datanya berubah. Di Python bentuknya fungsi: menerima DataFrame, mengembalikan daftar id baris yang melanggar. Daftar itu bisa dihitung, diserahkan ke pemilik data, atau dibandingkan dengan hasil jalan sebelumnya.
Pernyataan assert tidak cocok untuk tugas ini. Dokumentasi Python menyebutnya cara menyisipkan pemeriksaan debugging, dan kode assert sama sekali tidak dijalankan bila Python berjalan dengan optimasi -O. Assert juga berhenti di pelanggaran pertama, padahal audit butuh seluruh daftarnya. Pakai assert untuk menguji fungsi pemeriksamu, bukan untuk memeriksa datanya.
Dua alat pandas menjadi dasar. isna() menganggap NaN, NaT, dan None sebagai nilai hilang; teks berisi spasi bukan nilai hilang, jadi aturan kosong untuk teks butuh pemeriksaan tambahan setelah .str.strip(). duplicated(subset=..., keep=False) menandai semua baris yang kuncinya muncul lebih dari sekali; nilai bawaannya keep='first' tidak menandai kemunculan pertama, sehingga laporan kehilangan separuh pasangan.
def nilai_kosong(rapor):
kosong = rapor["nilai"].isna()
return sorted(rapor.loc[kosong, "nis"].tolist())