Inspeksi pertama adalah rangkaian pemeriksaan singkat yang dijalankan segera setelah data dimuat. Topik ini memperkenalkan empat perintah yang membentuk ritme baku tersebut, yaitu head untuk cuplikan, describe untuk statistik ringkas, dtypes untuk tipe kolom, dan shape untuk ukuran data. Keempatnya menjawab pertanyaan dasar tentang isi dan bentuk data sebelum keputusan pembersihan atau analisis diambil. Setelah topik ini, data yang baru dimuat dapat dinilai kewajarannya dalam beberapa panggilan singkat, dan kolom yang bermasalah sudah tertandai.
Melihat cuplikan dengan head dan tail#
Perintah head menampilkan lima baris pertama secara default, sedangkan tail menampilkan baris terakhir. Keduanya menjadi pemeriksaan paling awal untuk memastikan data terlihat seperti yang diharapkan. Yang diperiksa pada tahap ini bukan statistiknya, melainkan bentuknya, misalnya apakah nama kolom sudah benar, apakah nilai terlihat wajar, dan apakah ada baris yang tampak aneh di awal atau akhir data.
Contoh pada topik ini menggunakan catatan pembacaan sensor suhu ruangan, yaitu DataFrame dengan delapan baris dan empat kolom yang dibangun dari literal Python. Potongan-potongan berikutnya mengulang definisi yang sama agar setiap potongan dapat dijalankan sendiri.
import pandas as pd
suhu = pd.DataFrame({
"sensor": ["R-01", "R-01", "R-02", "R-02", "R-03", "R-03", "R-01", "R-02"],
"jam": [8, 9, 8, 9, 8, 9, 10, 10],
"suhu_c": [24.5, 24.8, 23.9, 24.1, 25.2, 25.0, 25.1, 23.7],
"kelembapan": [62, 63, 58, 59, 66, 65, 61, 60],
})
print(suhu) sensor jam suhu_c kelembapan
0 R-01 8 24.5 62
1 R-01 9 24.8 63
2 R-02 8 23.9 58
3 R-02 9 24.1 59
4 R-03 8 25.2 66
5 R-03 9 25.0 65
6 R-01 10 25.1 61
7 R-02 10 23.7 60import pandas as pd
suhu = pd.DataFrame({
"sensor": ["R-01", "R-01", "R-02", "R-02", "R-03", "R-03", "R-01", "R-02"],
"jam": [8, 9, 8, 9, 8, 9, 10, 10],
"suhu_c": [24.5, 24.8, 23.9, 24.1, 25.2, 25.0, 25.1, 23.7],
"kelembapan": [62, 63, 58, 59, 66, 65, 61, 60],
})
print(suhu.head())
print()
print(suhu.tail(2)) sensor jam suhu_c kelembapan
0 R-01 8 24.5 62
1 R-01 9 24.8 63
2 R-02 8 23.9 58
3 R-02 9 24.1 59
4 R-03 8 25.2 66
sensor jam suhu_c kelembapan
6 R-01 10 25.1 61
7 R-02 10 23.7 60Panggilan head() tanpa argumen menampilkan lima baris pertama, sedangkan tail(2) menampilkan dua baris terakhir. Angka di kolom paling kiri memudahkan pemeriksaan urutan baris. Pada data sensor ini, urutan jam naik dari 8 ke 10 dan tidak ada nilai yang mencurigakan pada cuplikan yang terlihat. Apabila data dimuat dari berkas yang besar, head menjadi cara tercepat mengonfirmasi bahwa pemisah kolom dan baris pertama sudah terbaca dengan benar.
Statistik ringkas dengan describe#
Perintah describe merangkum setiap kolom numerik dengan delapan statistik sekaligus, yaitu count, mean, std, min, kuartil pertama, median, kuartil ketiga, dan max. Statistik inilah bahan pertama untuk menilai kewajaran data. Yang diperiksa umumnya empat hal, yaitu apakah count sama dengan jumlah baris, apakah min dan max masuk akal, apakah rata-rata berdekatan dengan median, dan apakah ada lompatan yang janggal antarkuartil.
import pandas as pd
suhu = pd.DataFrame({
"sensor": ["R-01", "R-01", "R-02", "R-02", "R-03", "R-03", "R-01", "R-02"],
"jam": [8, 9, 8, 9, 8, 9, 10, 10],
"suhu_c": [24.5, 24.8, 23.9, 24.1, 25.2, 25.0, 25.1, 23.7],
"kelembapan": [62, 63, 58, 59, 66, 65, 61, 60],
})
print(suhu.describe()) jam suhu_c kelembapan
count 8.000000 8.00000 8.000000
mean 8.875000 24.53750 61.750000
std 0.834523 0.57802 2.815772
min 8.000000 23.70000 58.000000
25% 8.000000 24.05000 59.750000
50% 9.000000 24.65000 61.500000
75% 9.250000 25.02500 63.500000
max 10.000000 25.20000 66.000000Kolom sensor tidak muncul karena isinya teks, dan describe hanya mengolah kolom numerik secara default. Hasilnya menunjukkan delapan pembacaan untuk setiap kolom numerik, sehingga tidak ada baris yang kosong. Suhu berkisar di sekitar 24 derajat Celsius dan kelembapan di sekitar 60 persen, keduanya masuk akal untuk ruangan kerja. Kolom jam ikut dirangkum sebagai bilangan dengan rata-rata di atas 8, dan hal itu menjadi pengingat bahwa kolom yang isinya label pun ikut dihitung bila bertipe numerik.
Tipe kolom dengan dtypes#
Atribut dtypes menampilkan tipe data setiap kolom. Tipe ini menentukan operasi apa saja yang sah untuk kolom tersebut, misalnya penjumlahan untuk bilangan dan penggabungan untuk teks. Tipe yang paling sering ditemui ada tiga, yaitu int64 untuk bilangan bulat, float64 untuk bilangan desimal, dan object untuk teks.
import pandas as pd
suhu = pd.DataFrame({
"sensor": ["R-01", "R-01", "R-02", "R-02", "R-03", "R-03", "R-01", "R-02"],
"jam": [8, 9, 8, 9, 8, 9, 10, 10],
"suhu_c": [24.5, 24.8, 23.9, 24.1, 25.2, 25.0, 25.1, 23.7],
"kelembapan": [62, 63, 58, 59, 66, 65, 61, 60],
})
print(suhu.dtypes)sensor object
jam int64
suhu_c float64
kelembapan int64
dtype: objectSetiap kolom pada data contoh ini bertipe sesuai isinya. Pada data nyata, pemeriksaan dtypes sering menemukan masalah, misalnya kolom nilai yang seharusnya numerik terbaca sebagai object karena satu barisnya berisi teks seperti kata kosong atau tanda baca. Kolom semacam itu tidak dapat dijumlahkan sebelum diperbaiki. Karena itu, dtypes dijalankan bukan sekadar untuk diketahui, melainkan untuk menandai kolom yang tipe datanya perlu diperbaiki sehingga masuk daftar pekerjaan pembersihan.
Ukuran data dengan shape#
Atribut shape menyatakan ukuran DataFrame sebagai pasangan angka, yaitu jumlah baris dan jumlah kolom. Nilainya berguna untuk memastikan tidak ada baris yang hilang saat dimuat. Apabila sumber diketahui berisi 1000 baris dan shape menampilkan 987, ada 13 baris yang tidak terbaca, dan perbedaan itu perlu diselidiki sebelum analisis dimulai.
import pandas as pd
suhu = pd.DataFrame({
"sensor": ["R-01", "R-01", "R-02", "R-02", "R-03", "R-03", "R-01", "R-02"],
"jam": [8, 9, 8, 9, 8, 9, 10, 10],
"suhu_c": [24.5, 24.8, 23.9, 24.1, 25.2, 25.0, 25.1, 23.7],
"kelembapan": [62, 63, 58, 59, 66, 65, 61, 60],
})
print(suhu.shape)(8, 4)Keluaran (8, 4) menyatakan delapan baris dan empat kolom, sesuai dengan data yang didefinisikan di awal topik. shape adalah atribut, bukan fungsi, sehingga diakses tanpa tanda kurung. Penambahan tanda kurung yang tidak perlu memunculkan pesan TypeError berisi tuple object is not callable, dan pesan tersebut umumnya berarti ada atribut yang dipanggil seperti fungsi. Ukuran ini juga menjadi pembanding setelah langkah pembersihan, karena data yang semula delapan baris dapat berubah setelah baris kosong dibuang, dan selisihnya mencatat akibat keputusan pembersihan tersebut.
Kesalahan umum#
Kesalahan pertama adalah menilai seluruh data dari lima baris pertama saja. head hanya memperlihatkan ujung data, sedangkan baris yang aneh sering berada di tengah, terutama pada data yang terurut. Pelengkap yang berguna adalah sample(5), yaitu cuplikan lima baris acak, karena baris acak lebih mewakili keragaman data daripada baris pertama.
Kesalahan kedua adalah menganggap describe sebagai akhir pemeriksaan. Statistik yang ditampilkan bersifat permukaan, misalnya max yang jauh dari kuartil ketiga belum memberitahu penyebabnya dan hanya menandai kecurigaan pencilan. Pemeriksaan lanjutan tetap diperlukan sebelum kesimpulan diambil.
Kesalahan ketiga adalah membiarkan kolom bertipe numerik padahal maknanya kategori, seperti kolom jam pada data contoh. Kolom semacam itu ikut dihitung oleh describe dan ikut dirata-rata, padahal angka 8 pada jam hanya menandai urutan waktu dan tidak bermakna lebih kecil daripada angka 9. Keputusan mengonversi kolom seperti ini ke tipe kategori dicatat sebagai bagian dari pembersihan.
Ringkasan#
headdantailmenampilkan cuplikan untuk memeriksa bentuk data, sedangkandescribemerangkum kolom numerik dengancount,mean,std,min,max, dan kuartil.dtypesmenandai kolom dengan tipe yang tidak sesuai isinya sebelum operasi numerik gagal di tengah analisis.shapemenyatakan jumlah baris dan kolom sebagai atribut tanpa tanda kurung, dan nilainya menjadi pembanding sebelum serta sesudah pembersihan.
Referensi#
- pandas user guide — Pandas — Panduan resmi pandas yang memuat bagian fungsionalitas dasar, termasuk head, describe, dtypes, dan shape.
- pandas documentation — Pandas — Pintu masuk dokumentasi resmi pandas beserta API reference-nya.