Daftar Periksa Pemrofilan Dataset
Periksa secara sistematis bentuk, dtypes, jumlah nilai yang hilang, nilai unik, dan statistik dasar saat menemukan dataset baru.
Daftar Periksa Pemrofilan Dataset adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Lima Menit Pertama Bersama Dataset
Analis data berpengalaman mengikuti daftar periksa pembuatan profil yang sistematis setiap kali menemukan dataset baru. Alih-alih langsung terjun ke analisis, mereka terlebih dahulu menjawab serangkaian pertanyaan diagnostik: Seberapa besar datanya? Apa jenis kolomnya? Berapa banyak nilai yang hilang? Apakah ada anomali yang jelas? Pendekatan terstruktur ini mencegah berjam-jam pekerjaan sia-sia akibat jenis data yang disalahpahami atau nilai null tersembunyi yang merusak perhitungan.
import pandas as pd
# Simulate loading a new dataset
df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
# Step 1: size
print('Shape:', df.shape)
print('Rows:', len(df))Langkah 1: Bentuk, Kolom, dan dtypes
Tiga pemeriksaan pertama selalu mencakup bentuk (baris × kolom), nama kolom (apakah sesuai dengan yang diharapkan?), dan dtypes (apakah kolom numerik benar-benar numerik?). Hal yang sering mengejutkan adalah kolom numerik dimuat sebagai dtype object karena berisi entri teks seperti 'unknown' atau angka dengan format koma yang bercampur. Menemukan hal ini pada tahap pembuatan profil menyelamatkan Anda dari agregasi yang secara diam-diam menghasilkan nilai yang salah.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
print('Shape:', df.shape)
print('\nColumns:', df.columns.tolist())
print('\nData Types:')
print(df.dtypes)Langkah 2: Audit Nilai yang Hilang
Panggil df.isna().sum() untuk menghitung nilai yang hilang per kolom, lalu bagi dengan len(df) untuk mendapatkan persentasenya. Kolom dengan lebih dari 50% nilai hilang biasanya layak dihapus; 1-20% nilai hilang biasanya perlu diimputasi; 0% nilai hilang perlu diperiksa kewajarannya — kelengkapan sempurna itu sendiri dapat mencurigakan jika data nyata jarang datang sebersih itu. Urutkan hasil secara menurun untuk melihat kolom yang paling terdampak terlebih dahulu.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Missing value audit
missing = df.isna().sum()
missing_pct = (missing / len(df) * 100).round(1)
audit = pd.DataFrame({'count': missing, 'pct': missing_pct})
audit = audit[audit['count'] > 0].sort_values('pct', ascending=False)
print(audit)Langkah 3: Statistik Deskriptif Dasar
df.describe() mengembalikan count, mean, std, min, kuartil, dan max untuk setiap kolom numerik dalam satu pemanggilan. Selalu periksa min dan max untuk menemukan nilai yang mustahil (misalnya usia = -3 atau usia = 999), mean dibandingkan median untuk melihat kemencengan (kesenjangan besar menunjukkan pencilan), dan count (jika lebih rendah daripada jumlah total baris, berarti ada nilai null). Tambahkan include='all' untuk menyertakan statistik kolom object juga (jumlah unik, top, freq).
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Describe numeric columns
print('Numeric statistics:')
print(df.describe().round(2))
print('\nObject column statistics:')
print(df.describe(include='object'))Langkah 4: Jumlah Nilai Unik
Untuk kolom kategorikal, periksa jumlah nilai unik dengan df[col].nunique() dan periksa nilai yang paling umum dengan value_counts(). Waspadai kolom yang tampak kategorikal tetapi memiliki ratusan nilai unik (mungkin merupakan bidang teks bebas atau ID), serta kolom yang seharusnya boolean tetapi memiliki tiga nilai (True, False, dan NaN). Periksa juga penggunaan huruf besar-kecil yang tidak konsisten: 'Male' dan 'male' diperlakukan sebagai kategori terpisah.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
categorical = df.select_dtypes(include='object').columns
for col in categorical:
n = df[col].nunique()
top_vals = df[col].value_counts().head(3).to_dict()
print(f'{col}: {n} unique — top3: {top_vals}')Langkah 5: Sampel Baris dengan head dan tail
df.head(10) dan df.tail(10) masing-masing menampilkan baris pertama dan terakhir. Memeriksa keduanya penting karena dataset sering memiliki baris header yang rapi dan baris akhir yang berantakan akibat artefak ekspor (misalnya baris ringkasan 'Total' yang ditambahkan ke ekspor CSV). Gunakan juga df.sample(10) untuk melihat pilihan baris secara acak, sehingga menghindari bias terhadap bagian awal dataset.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
print('First 3 rows:')
print(df.head(3))
print('\nLast 3 rows:')
print(df.tail(3))
print('\nRandom sample of 3:')
print(df.sample(3, random_state=42))Langkah 6: Memeriksa Duplikat
Panggil df.duplicated().sum() untuk menghitung baris yang sepenuhnya terduplikasi (setiap kolomnya sama). Dataset yang mengklaim berisi catatan pelanggan unik tetapi memiliki satu saja duplikat merupakan tanda bahaya bagi kualitas data. Gunakan df[df.duplicated(keep=False)] untuk memeriksa baris duplikat yang sebenarnya. Jika sebuah tabel seharusnya memiliki kunci unik (seperti ID pengguna), periksa juga keunikan pada tingkat kunci dengan df['id'].duplicated().sum().
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Full-row duplicates
full_dups = df.duplicated().sum()
print(f'Fully duplicated rows: {full_dups}')
# Key-level duplicates (e.g. passenger class + name)
key_dups = df.duplicated(subset=['pclass', 'sex', 'age', 'fare']).sum()
print(f'Near-duplicate rows (pclass+sex+age+fare): {key_dups}')Langkah 7: Kolom Tanggal dan Waktu
Jika dataset berisi kolom tanggal atau cap waktu, periksa apakah Pandas memuatnya sebagai datetime64 (bukan object). Konversikan dengan pd.to_datetime(df['col']). Kemudian periksa rentang tanggal: df['date'].min() dan df['date'].max(). Cari cap waktu yang jauh di masa depan (tahun 2099) atau masa lalu (epoch nol: 1970-01-01), yang menunjukkan nilai penanda yang digunakan untuk merepresentasikan tanggal yang hilang.
import pandas as pd
# Synthetic example with a date column
df = pd.DataFrame({
'order_id': [1, 2, 3, 4],
'order_date': ['2024-01-10', '2024-02-05', '1970-01-01', '2024-12-31']
})
df['order_date'] = pd.to_datetime(df['order_date'])
print('Date range:', df['order_date'].min(), 'to', df['order_date'].max())
print('\nSuspect dates (before 2020):')
print(df[df['order_date'] < '2020-01-01'])Mengotomatiskan Daftar Periksa ke dalam Fungsi
Membungkus langkah-langkah pembuatan profil ke dalam fungsi yang dapat digunakan kembali memastikan pemeriksaan yang sama berjalan secara konsisten pada setiap dataset. Fungsi tersebut harus mencetak laporan terstruktur yang menampilkan bentuk, nilai yang hilang, dtypes, jumlah duplikat, dan statistik dasar. Anda dapat memperluasnya dengan visualisasi atau menyimpannya sebagai laporan HTML. Fungsi seperti ini merupakan bagian penting dari tim ilmu data profesional yang memiliki beberapa analis yang bekerja pada pipeline yang sama.
import pandas as pd
def profile(df, name='DataFrame'):
print(f'=== Profile: {name} ===')
print(f'Shape: {df.shape[0]} rows x {df.shape[1]} cols')
print(f'Duplicates: {df.duplicated().sum()}')
print(f'\nMissing values (top 5):')
missing = (df.isna().sum() / len(df) * 100).sort_values(ascending=False)
print(missing[missing > 0].head(5).round(1).to_string())
print(f'\ndtypes:')
print(df.dtypes.value_counts().to_string())
print('=' * 35)
import seaborn as sns
df = sns.load_dataset('titanic')
profile(df, 'Titanic')ydata-profiling untuk EDA Otomatis
Pustaka ydata-profiling (sebelumnya pandas-profiling) menghasilkan laporan HTML komprehensif dari sebuah DataFrame hanya dengan satu baris: ProfileReport(df).to_file('report.html'). Laporan ini mencakup histogram, matriks korelasi, heatmap nilai yang hilang, pendeteksian duplikat, dan plot interaksi. Ini adalah cara tercepat untuk membagikan profil lengkap suatu dataset kepada pemangku kepentingan yang perlu memahami data tanpa menulis kode.
# Install: pip install ydata-profiling
# from ydata_profiling import ProfileReport
# import pandas as pd
# import seaborn as sns
# df = sns.load_dataset('titanic')
# profile = ProfileReport(df, title='Titanic Profiling Report', explorative=True)
# profile.to_file('titanic_profile.html')
# The above generates a full HTML report automatically.
# Alternatively, use minimal mode for faster generation:
# profile = ProfileReport(df, minimal=True)
print('ydata-profiling generates HTML EDA reports automatically.')
print('Run: pip install ydata-profiling')Ringkasan Daftar Periksa Pembuatan Profil
Daftar periksa pembuatan profil lengkap untuk setiap dataset baru terdiri dari tujuh langkah: 1) bentuk dan kolom, 2) tipe data dan penetapan tipe yang mencurigakan, 3) jumlah dan persentase nilai yang hilang pada setiap kolom, 4) statistik deskriptif (min, maks, mean, median), 5) nilai unik dan jumlah kemunculan nilai untuk kolom kategorikal, 6) pendeteksian baris duplikat, dan 7) validasi rentang tanggal. Menyelesaikan daftar periksa ini sebelum analisis apa pun mencegah error tersembunyi yang merusak hasil pada tahap berikutnya.
Pemeriksaan Singkat
Uji pemahaman Anda tentang daftar periksa pembuatan profil dataset dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini Anda mempelajari: daftar periksa pembuatan profil 7 langkah (bentuk, tipe data, nilai yang hilang, statistik, jumlah nilai unik, duplikat, tanggal), membungkus pemeriksaan ke dalam fungsi profil yang dapat digunakan kembali, dan menggunakan ydata-profiling untuk membuat laporan HTML otomatis. Berikutnya kita akan membahas analisis univariat — mempelajari setiap kolom secara terpisah untuk menemukan pencilan, kecondongan, dan distribusi yang tidak biasa.
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Daftar Periksa Pemrofilan Dataset” gratis?
Ya — teks lengkap “Daftar Periksa Pemrofilan Dataset” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Daftar Periksa Pemrofilan Dataset”?
Periksa secara sistematis bentuk, dtypes, jumlah nilai yang hilang, nilai unik, dan statistik dasar saat menemukan dataset baru. Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?
Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Daftar Periksa Pemrofilan Dataset” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?
Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Daftar Periksa Pemrofilan Dataset
- Analisis Univariat
- Analisis Bivariat dan Korelasi
- Merangkum Temuan dalam Laporan