Memuat dan Mengaudit Dataset Penjualan
Impor CSV berisi rekaman pesanan, audit dtypes dan nilai yang hilang, lalu perbaiki penguraian tanggal dan anomali jumlah negatif.
Memuat dan Mengaudit Dataset Penjualan 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.
Memperkenalkan Dataset Penjualan
Dataset penjualan biasanya berisi kolom seperti order_id, order_date, customer_id, product, category, quantity, unit_price, dan region. Sebelum melakukan analisis apa pun, Anda harus memuat file ini dan mengamati strukturnya terlebih dahulu. Tujuan langkah awal ini adalah memahami data yang Anda miliki sebelum menulis satu rumus pun.
import pandas as pd
df = pd.read_csv('sales.csv')
print(df.shape) # (rows, columns)
print(df.head())Memeriksa Bentuk dan Nama Kolom
Setelah memuat data, segera periksa df.shape untuk mengetahui dimensi dataset dan df.columns untuk melihat semua nama kolom. Hal ini memastikan file dimuat dengan benar dan menunjukkan apakah ada nama kolom yang memiliki spasi tidak terduga atau penggunaan huruf besar-kecil yang perlu dibersihkan. Ketidaksesuaian jumlah kolom yang diharapkan merupakan tanda awal bahwa file mungkin rusak.
print('Rows, Cols:', df.shape)
print('Columns:', df.columns.tolist())
print('Index:', df.index[:5].tolist())Memeriksa Tipe Data dengan dtypes
Gunakan df.dtypes atau df.info() untuk melihat tipe data yang dikenali pada setiap kolom. Masalah yang umum terjadi antara lain kolom tanggal yang dimuat sebagai object (string) dan kolom numerik yang dimuat sebagai object karena adanya koma atau simbol mata uang yang tidak semestinya. Menemukan masalah tipe data sejak awal mencegah kesalahan yang tidak terlihat dalam operasi aritmetika berikutnya.
print(df.dtypes)
# More detail including non-null counts
df.info()Menghitung Nilai yang Hilang
Jalankan df.isna().sum() untuk menghitung nilai NaN pada setiap kolom. Konversikan hasilnya menjadi persentase dengan df.isna().mean() * 100 untuk melihat proporsi data yang hilang pada setiap kolom. Kolom dengan lebih dari 30–40% data yang hilang biasanya memerlukan keputusan: hapus kolom, lakukan imputasi, atau tandai sebagai variabel indikator terpisah.
missing = df.isna().sum()
missing_pct = df.isna().mean() * 100
print(pd.DataFrame({'count': missing, 'pct': missing_pct}))Mendeteksi Baris Duplikat
Catatan pesanan yang duplikat meningkatkan total pendapatan secara tidak semestinya dan mengacaukan analisis per pelanggan. Gunakan df.duplicated().sum() untuk menghitung duplikat yang sama persis dan df.duplicated(subset=['order_id']).sum() untuk memeriksa ID pesanan yang berulang, yang seharusnya unik. Mengidentifikasi duplikat saat memuat data menghemat waktu debugging di kemudian hari.
print('Exact duplicates:', df.duplicated().sum())
print('Duplicate order_ids:', df.duplicated(subset=['order_id']).sum())
# Preview the duplicated rows
print(df[df.duplicated(subset=['order_id'], keep=False)].head())Memperbaiki Penguraian Kolom Tanggal
Kolom tanggal yang dimuat sebagai object harus dikonversi dengan pd.to_datetime() agar Anda dapat melakukan operasi aritmetika tanggal. Teruskan format='%Y-%m-%d' jika Anda mengetahui formatnya, atau gunakan infer_datetime_format=True untuk format yang beragam. Setelah konversi, ambil tahun dan bulan dengan aksesori .dt untuk pengelompokan berdasarkan waktu.
df['order_date'] = pd.to_datetime(df['order_date'], format='%Y-%m-%d')
df['year'] = df['order_date'].dt.year
df['month'] = df['order_date'].dt.month
print(df[['order_date', 'year', 'month']].head())Menemukan Kuantitas Negatif
Nilai quantity negatif biasanya menunjukkan pengembalian barang atau kesalahan entri data. Gunakan pengindeksan boolean untuk menemukannya: df[df['quantity'] < 0]. Putuskan apakah nilai tersebut akan diperlakukan sebagai pengembalian yang sah (pertahankan dengan penanda) atau sebagai kesalahan (hapus atau perbaiki). Selalu dokumentasikan keputusan Anda agar pipeline dapat dijalankan kembali dengan hasil yang konsisten.
negatives = df[df['quantity'] < 0]
print(f'Negative quantity rows: {len(negatives)}')
print(negatives.head())
# Flag returns separately
df['is_return'] = df['quantity'] < 0Memeriksa Rentang Kolom Numerik
Gunakan df.describe() untuk melihat nilai minimum, maksimum, rata-rata, dan kuartil setiap kolom numerik. unit_price dengan nilai minimum nol atau negatif patut dicurigai. Nilai maksimum quantity yang jauh lebih tinggi daripada ukuran pesanan yang wajar mungkin merupakan kesalahan entri data. Pemeriksaan kewajaran rentang adalah cara cepat untuk menemukan anomali.
print(df[['quantity', 'unit_price']].describe())
# Any price exactly 0?
print('Zero price rows:', (df['unit_price'] == 0).sum())Mengaudit Kolom Kategorikal
Untuk kolom seperti region dan category, gunakan df['region'].value_counts() untuk melihat semua nilai unik beserta frekuensinya. Cari kesalahan ketik, penggunaan huruf besar-kecil yang tidak konsisten (misalnya 'north' dan 'North'), atau nilai yang tidak terduga yang menunjukkan masalah pada data sumber. Seragamkan nilai-nilai tersebut sebelum operasi groupby apa pun.
print(df['region'].value_counts())
print(df['category'].value_counts())
# Normalise capitalisation
df['region'] = df['region'].str.strip().str.title()Membuat Ringkasan Audit
DataFrame ringkasan audit yang terstruktur membantu menyampaikan masalah kualitas data kepada para pemangku kepentingan. Buatlah dengan mengumpulkan metrik seperti jumlah baris, jumlah kolom, jumlah nilai yang hilang, dan jumlah duplikat ke dalam sebuah kamus, lalu mengonversinya menjadi DataFrame. Ringkasan ini menjadi bagian pertama laporan analisis Anda dan memberikan dasar untuk setiap langkah pembersihan yang dilakukan.
audit = {
'rows': len(df),
'columns': len(df.columns),
'missing_cells': df.isna().sum().sum(),
'duplicate_rows': df.duplicated().sum(),
'date_range_start': df['order_date'].min(),
'date_range_end': df['order_date'].max()
}
for k, v in audit.items():
print(f'{k}: {v}')Menyimpan Cuplikan Bersih
Setelah audit awal dan perbaikan dasar (koreksi dtype, penghapusan duplikat, kolom penanda), simpan cuplikan bersih agar langkah-langkah berikutnya selalu dimulai dari dasar yang konsisten. Gunakan df.to_csv('sales_clean.csv', index=False) atau, untuk pemuatan ulang yang lebih cepat, df.to_parquet('sales_clean.parquet'). Parquet mempertahankan dtype termasuk datetime, sedangkan CSV tidak.
# Drop exact duplicates before saving
df = df.drop_duplicates(subset=['order_id'], keep='first')
# Save clean snapshot
df.to_parquet('sales_clean.parquet', index=False)
print('Saved', len(df), 'rows to sales_clean.parquet')Pemeriksaan Cepat
Uji pemahaman Anda tentang konsep Analisis Data dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda mempelajari: memuat CSV dan memeriksa bentuk/jumlah kolom, mengaudit dtype, nilai yang hilang, duplikat, dan kuantitas negatif, serta menyimpan cuplikan bersih untuk langkah-langkah berikutnya. Selanjutnya, kita akan membahas perhitungan pendapatan dan rekayasa fitur pada kumpulan data yang bersih.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memuat dan Mengaudit Dataset Penjualan” gratis?
Ya — teks lengkap “Memuat dan Mengaudit Dataset Penjualan” 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 “Memuat dan Mengaudit Dataset Penjualan”?
Impor CSV berisi rekaman pesanan, audit dtypes dan nilai yang hilang, lalu perbaiki penguraian tanggal dan anomali jumlah negatif. 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 “Memuat dan Mengaudit Dataset Penjualan” 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
- Memuat dan Mengaudit Dataset Penjualan
- Perhitungan Pendapatan dan Rekayasa Fitur
- Analisis GroupBy berdasarkan Wilayah dan Kategori
- Visualisasi Tren Bulanan